0

当我将我的样式从Slider控件中移除时,一切都变得一团糟(我不能再移动滑块了,而且它被卡住了)。

原始代码(有效):

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

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

我单击此处获取工具提示

现在,如果我使用外部样式:

<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}" />

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

我什至不能移动滑块

它可以识别样式,否则它不会位于 900,但为什么滑块显示不正确?

我究竟做错了什么?这真的让我很困惑。

4

1 回答 1

1

我确实发现了这个问题。看起来样式引擎是Setters按顺序应用的。

当它尝试设置为时它必须失败Minimum900因为默认情况下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>
于 2013-03-05T07:51:59.583 回答