Slider.Minimum属性负值问题

时间:2012-11-29 13:13:28

标签: silverlight xaml styles slider silverlight-5.0

可能我有另一个无法解决的问题。在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>

结果如下:

enter image description here

但显然两个拇指应该处于同一位置(在Slider中间)。

实际上,它看起来就像接受了Minimum值(-10) ,但是Maximum值变为0,这就是为什么第一个滑块有一个拇指对齐到右侧(Value为0,Maximum也为0)。

1 个答案:

答案 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>