Ползунок Xamarin.forms ThumImage скрывает максимальное значение - PullRequest
0 голосов
/ 10 октября 2019

Я использую управление ползунком и устанавливаю треугольник как изображение большого пальца. На крайнем левом или минимальном значении изображение отображается правильно. Но при перетаскивании его на максимальные значения он скрывается на максимальном значении. <Slider.ThumbImageSource> <OnPlatform x:TypeArguments="FileImageSource"> <On Platform="UWP" Value="Assets/Images/Triangle.png"/> </OnPlatform> </Slider.ThumbImageSource>

1 Ответ

1 голос
/ 11 октября 2019

При использовании этого ползункового элемента управления с изображением большого пальца в Xamarin.uwp горизонтальное ограничение отсутствует. Тем не менее, оригинальный большой палец работает хорошо.

Можно создать пользовательский элемент управления, чтобы использовать original Thumb style для покрытия Thumb Image style.

Изменение:

<Thumb x:Name="HorizontalThumb"
              Background="{ThemeResource SystemControlForegroundAccentBrush}"
              Style="{StaticResource SliderThumbStyle}"
              DataContext="{TemplateBinding Value}"
              Height="24"
              Width="8"
              Grid.Row="0"
              Grid.RowSpan="3"
              Grid.Column="1"
              AutomationProperties.AccessibilityView="Raw" />
                            <Thumb x:Name="HorizontalImageThumb"
                                    Visibility="Collapsed"
                                    Background="{ThemeResource SystemControlForegroundAccentBrush}"
                                    Style="{StaticResource SliderThumbImageStyle}"
                                    DataContext="{TemplateBinding Value}"
                                    Tag="{Binding ThumbImageSource, RelativeSource={RelativeSource TemplatedParent}}"
                                    Height="24"
                                    Width="24"
                                    Grid.Row="0"
                                    Grid.RowSpan="3"
                                    Grid.Column="1"
                                    AutomationProperties.AccessibilityView="Raw" />

To:

   <Thumb
                                x:Name="HorizontalThumb"
                                Grid.Row="0"
                                Grid.RowSpan="3"
                                Grid.Column="1"
                                Width="24"
                                Height="24"
                                AutomationProperties.AccessibilityView="Raw"
                                Style="{StaticResource SliderThumbImageStyle}"
                                Background="{ThemeResource SystemControlForegroundAccentBrush}"
                                DataContext="{TemplateBinding Value}"
                                Tag="{Binding ThumbImageSource, RelativeSource={RelativeSource TemplatedParent}}"
                                />

И комментарий к методу, который использовался для обмена пальцами.

protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();

        Thumb = GetTemplateChild("HorizontalThumb") as Thumb;
        ImageThumb = GetTemplateChild("HorizontalImageThumb") as Thumb;

        //SwapThumbs(this);

        OnReady();
    }

И добавьте код ниже, чтобы использовать это свойствоизменить значение по умолчанию для стиля, который использует элемент управления.

public MySlider()
    {
        this.DefaultStyleKey = typeof(MySlider);
    }

Затем комментарий код в MainPage.cs файла Xamarin.uwp.

LoadApplication(new App43.App());

Atнаконец, вы можете использовать этот элемент управления в Xamarin.uwp MainPage.xaml.

<local:MySlider ThumbImageSource="Assets/pig.jpg"/>

Результат: enter image description here

У меня есть загрузкаМой пример на GitHub, вы можете скачать папку App43 для справки. https://github.com/WendyZang/Test.git

...