如何设置滑块的样式?

时间:2017-06-05 14:22:07

标签: uwp uwp-xaml

我发现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具有所有状态和主题的渐变背景,即总是在指针悬停等处不会是黑色的?

任何人都可以发贴示例,请?

ADDED
难道这是一个如此难以理解的问题吗?还是我问坏了?写信给我,请,我会添加细节。因为我真的找不到解决方案。

1 个答案:

答案 0 :(得分:1)

有一个关于Slider控件的默认样式和模板的文档。您可以修改这些资源和默认的ControlTemplate,以使控件具有独特的外观。请参阅Slider styles and templates

从默认样式中,它定义名为Rectangle的{​​{1}}。这是&#34;线&#34;在VerticalTrackRect中,Fill属性绑定到Slider的{​​{1}}属性。因此,您应该能够将Background设置为Slider的{​​{1}}属性。

如果要在LinearGradientBrush被按下时使用Background Slider,请使用PointerOver。从默认样式开始,它使用LinearGradientBrush ThemeResource在PointerOver中设置Background Slider。它在Pressed中使用Slider ThemeResource。

因此,我们应该能够将SliderTrackFillPointerOver设置为FillVerticalTrackRect

例如:

SliderTrackFillPressed