可能我有另一个无法解决的问题。在Silverlight XAML中,我无法为Style
属性设置Slider.Minimum
负值。我的意思是,这是可能的,但结果是出乎意料的。在WPF中,这可以正常工作。
<StackPanel Width="200" Orientation="Vertical">
<StackPanel.Resources>
<Style TargetType="Slider" x:Key="style">
<Setter Property="Minimum" Value="-10" />
<Setter Property="Maximum" Value="10" />
<Setter Property="Value" Value="0" />
</Style>
</StackPanel.Resources>
<!-- Here it is not working -->
<Slider Style="{StaticResource style}"/>
<!-- Here it works as expected, as it is not styled -->
<Slider Minimum="-10" Maximum="10" Value="0" />
</StackPanel>
结果如下:
但显然两个拇指应该处于同一位置(在Slider
中间)。
实际上,它看起来就像接受了Minimum
值(-10) ,但是Maximum
值变为0,这就是为什么第一个滑块有一个拇指对齐到右侧(Value
为0,Maximum
也为0)。
答案 0 :(得分:2)
问题是Slider的HorizontalTemplate
。如果您将滑块的Orientation
更改为Vertical
,那么您的样式中定义的值将按预期应用。
<强>更新强> 解决方案是在样式中也设置方向。然后它按预期工作。
<Style TargetType="Slider" x:Key="style">
<Setter Property="Minimum"
Value="-10" />
<Setter Property="Maximum"
Value="10" />
<Setter Property="Value"
Value="0" />
<Setter Property="Orientation"
Value="Horizontal" />
</Style>