设置滑块使其无效

时间:2013-03-05 07:44:31

标签: xaml windows-8 styles slider winrt-xaml

当我将样式从Slider控件中取出时,它会变得混乱(我无法再移动滑块,而且卡住了)。

原始代码(可行):

<Slider IsThumbToolTipEnabled="True" SmallChange="10" Orientation="Horizontal" StepFrequency="10" Minimum="900" Maximum="2500" Value="1300" />

我明白了,它按预期工作:

I click to get the tooltip here

现在,如果我使用外部风格:

<Style x:Key="ELOSlider" TargetType="Slider">
      <Setter Property="IsThumbToolTipEnabled" Value="True"/>
      <Setter Property="SmallChange" Value="10"/>
      <Setter Property="Orientation" Value="Horizontal"/>
      <Setter Property="StepFrequency" Value="10"/>
      <Setter Property="Minimum" Value="900"/>
      <Setter Property="Maximum" Value="2500"/>
      <Setter Property="Value" Value="1300"/>
</Style>

...

<Slider Style="{StaticResource ELOSlider}" />

它搞砸了(滑块卡住,无法做任何事情):

I can't even move the slider

它识别样式,否则它不会是900,但为什么滑块不能正确显示?

我做错了什么?这让我很困惑。

1 个答案:

答案 0 :(得分:1)

我实际上发现了这个问题。看起来样式引擎依次应用Setters

尝试将Minimum设置为900时必须失败,因为Maximum默认为1。如果我按照以下方式放置Setters,它可以很好地工作。有点违反直觉...特别是因为没有警告输出(我希望900完全被拒绝,而不是搞砸控制......)

<Style x:Key="ELOSlider" TargetType="Slider">
    <Setter Property="Maximum" Value="2500"/>
    <Setter Property="Value" Value="1300"/>
    <Setter Property="Minimum" Value="900"/>
    <Setter Property="IsThumbToolTipEnabled" Value="True"/>
    <Setter Property="SmallChange" Value="10"/>
    <Setter Property="Orientation" Value="Horizontal"/>
    <Setter Property="StepFrequency" Value="10"/>
</Style>