当我将样式从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,但为什么滑块不能正确显示?
我做错了什么?这让我很困惑。
答案 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>