3

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

4

1 回答 1

2

问题是HorizontalTemplate滑块的。如果Orientation将 Slider更改为,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>
于 2012-11-29T15:13:15.653 回答