如何设置滑块样式?
How to style the slider?
我发现 this tutorial...但是 Imma noobie 还不知道如何将它应用到我的滑块上。
我现在有这个:
<Slider Grid.Column="1" Orientation="Vertical" Margin="6 0 0 0">
<Slider.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ff0000" Offset="0.0" />
<GradientStop Color="#ffff00" Offset="0.2" />
<GradientStop Color="#00ff00" Offset="0.4" />
<GradientStop Color="#00ffff" Offset="0.6" />
<GradientStop Color="#0000ff" Offset="0.8" />
<GradientStop Color="#ff00ff" Offset="1.0" />
</LinearGradientBrush>
</Slider.Background>
<Slider.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
// As I understood I can change styles here
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Slider.Resources>
</Slider>
但我不知道如何使 Slider
具有所有状态和主题的渐变背景,即总是,它不会在指针悬停时变黑等等?
任何人都可以 post 举个例子吗?
已添加
这是一个很难的问题,没有人知道吗?还是我问的不好?那么请写信给我,我会添加详细信息。因为我真的找不到解决办法。
有一篇关于 Slider 控件的默认样式和模板的文档。您可以修改这些资源和默认的 ControlTemplate 以赋予控件独特的外观。请参考Slider styles and templates.
在默认样式中定义了一个名为VerticalTrackRect
的Rectangle
。它是Slider
中的"line",属性绑定到Slider
中的Background
属性。所以你应该可以将 LinearGradientBrush
设置为 Slider
.
的 Background
属性
如果要在 Slider
被按下和 PointerOver 时使用 LinearGradientBrush
到 Slider
的 Background
。从默认样式开始,它使用 SliderTrackFillPointerOver
ThemeResource 在 PointerOver 中设置 Fill
或 VerticalTrackRect
。并且它在 Pressed.
中使用 SliderTrackFillPressed
ThemeResource
所以我们应该能够将 LinearGradientBrush
设置为 SliderTrackFillPressed
和 SliderTrackFillPointerOver
。
例如:
<Page.Resources>
<StaticResource x:Key="SliderTrackFillPressed" ResourceKey="MyLinearGradientBrush" />
<StaticResource x:Key="SliderTrackFillPointerOver" ResourceKey="MyLinearGradientBrush" />
<LinearGradientBrush x:Key="MyLinearGradientBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ff0000" Offset="0.0" />
<GradientStop Color="#ffff00" Offset="0.2" />
<GradientStop Color="#00ff00" Offset="0.4" />
<GradientStop Color="#00ffff" Offset="0.6" />
<GradientStop Color="#0000ff" Offset="0.8" />
<GradientStop Color="#ff00ff" Offset="1.0" />
</LinearGradientBrush>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Slider Grid.Column="1" Orientation="Vertical" Margin="6 0 0 0" Background="{StaticResource MyLinearGradientBrush}">
</Slider>
</Grid>
我发现 this tutorial...但是 Imma noobie 还不知道如何将它应用到我的滑块上。 我现在有这个:
<Slider Grid.Column="1" Orientation="Vertical" Margin="6 0 0 0">
<Slider.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ff0000" Offset="0.0" />
<GradientStop Color="#ffff00" Offset="0.2" />
<GradientStop Color="#00ff00" Offset="0.4" />
<GradientStop Color="#00ffff" Offset="0.6" />
<GradientStop Color="#0000ff" Offset="0.8" />
<GradientStop Color="#ff00ff" Offset="1.0" />
</LinearGradientBrush>
</Slider.Background>
<Slider.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
// As I understood I can change styles here
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Slider.Resources>
</Slider>
但我不知道如何使 Slider
具有所有状态和主题的渐变背景,即总是,它不会在指针悬停时变黑等等?
任何人都可以 post 举个例子吗?
已添加
这是一个很难的问题,没有人知道吗?还是我问的不好?那么请写信给我,我会添加详细信息。因为我真的找不到解决办法。
有一篇关于 Slider 控件的默认样式和模板的文档。您可以修改这些资源和默认的 ControlTemplate 以赋予控件独特的外观。请参考Slider styles and templates.
在默认样式中定义了一个名为VerticalTrackRect
的Rectangle
。它是Slider
中的"line",属性绑定到Slider
中的Background
属性。所以你应该可以将 LinearGradientBrush
设置为 Slider
.
Background
属性
如果要在 Slider
被按下和 PointerOver 时使用 LinearGradientBrush
到 Slider
的 Background
。从默认样式开始,它使用 SliderTrackFillPointerOver
ThemeResource 在 PointerOver 中设置 Fill
或 VerticalTrackRect
。并且它在 Pressed.
SliderTrackFillPressed
ThemeResource
所以我们应该能够将 LinearGradientBrush
设置为 SliderTrackFillPressed
和 SliderTrackFillPointerOver
。
例如:
<Page.Resources>
<StaticResource x:Key="SliderTrackFillPressed" ResourceKey="MyLinearGradientBrush" />
<StaticResource x:Key="SliderTrackFillPointerOver" ResourceKey="MyLinearGradientBrush" />
<LinearGradientBrush x:Key="MyLinearGradientBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ff0000" Offset="0.0" />
<GradientStop Color="#ffff00" Offset="0.2" />
<GradientStop Color="#00ff00" Offset="0.4" />
<GradientStop Color="#00ffff" Offset="0.6" />
<GradientStop Color="#0000ff" Offset="0.8" />
<GradientStop Color="#ff00ff" Offset="1.0" />
</LinearGradientBrush>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Slider Grid.Column="1" Orientation="Vertical" Margin="6 0 0 0" Background="{StaticResource MyLinearGradientBrush}">
</Slider>
</Grid>