При использовании этого ползункового элемента управления с изображением большого пальца в 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"/>
Результат:
У меня есть загрузкаМой пример на GitHub, вы можете скачать папку App43 для справки. https://github.com/WendyZang/Test.git