2013-05-12 35 views
0

我想让滑块值只能从数据绑定中设置。我不希望用户能够手动更改滑块值。这是片段。有关如何去做的任何建议。使滑块值仅从绑定值更改

<Slider x:Name="Serverslider" Value="{Binding Value}" 

           /> 

我缺少的任何属性?

+0

'<滑块X:名称= “Serverslider” 值= “{结合值}” 的IsEnabled = “假”/>' 用户将不能够与SLI相互作用但绑定仍然有效。 – 2013-05-12 18:04:02

+0

@wojtek谢谢。 IsEnabled的作品,但它导致其他问题,如前景属性不起作用。我想滑块的填充属性为蓝色,这似乎不工作了。 – 2013-05-12 18:28:46

回答

1

正如wojtek所示,您可以使用IsEnabled =“False”来禁止输入影响Slider。你得到这个:

现在,你有额外的需要改变滑块的填充颜色。在这里,你有两个选择:

  1. Retemplate滑块并更改“已禁用”视觉状态看你怎么想的那样。在混合中,右键单击滑块并选择“编辑模板>编辑副本”。然后,找到您想要更改的颜色。在这里,这些将是填充颜色,拇指背景和用于禁用状态的拇指边界刷。例如,更改以下XAML:

    <VisualState x:Name="Disabled"> 
        <Storyboard> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="HorizontalDecreaseRect"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SliderTrackDecreaseDisabledBackgroundThemeBrush}"/> 
        </ObjectAnimationUsingKeyFrames> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="HorizontalThumb"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SliderThumbDisabledBackgroundThemeBrush}"/> 
        </ObjectAnimationUsingKeyFrames> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="HorizontalThumb"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SliderThumbDisabledBackgroundThemeBrush}"/> 
        </ObjectAnimationUsingKeyFrames> 
    

    这样:

    <VisualState x:Name="Disabled"> 
        <Storyboard> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="HorizontalDecreaseRect"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="Red"/> 
        </ObjectAnimationUsingKeyFrames> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="HorizontalThumb"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="Orange"/> 
        </ObjectAnimationUsingKeyFrames> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="HorizontalThumb"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="Yellow"/> 
        </ObjectAnimationUsingKeyFrames> 
    

    注:编辑部分标有“*垂直”如果你关心垂直滚动条的模板。 示例代码:https://github.com/finnigantime/Samples/tree/master/examples/Win8Xaml/Slider_RetemplateDisabledState

  2. 如果所有残疾人滑块您的应用程序看起来是一样的,就可以覆盖用于绘制残疾人滑块在App.xaml中的“主题资源”:

    <Application> 
        <Application.Resources> 
        <ResourceDictionary> 
         <SolidColorBrush x:Key="SliderTrackDecreaseDisabledBackgroundThemeBrush" Color="Green" /> 
         <SolidColorBrush x:Key="SliderThumbDisabledBackgroundThemeBrush" Color="Lime" /> 
        </ResourceDictionary> 
    

    实施例编号:https://github.com/finnigantime/Samples/tree/master/examples/Win8Xaml/Slider_OverrideDisabledResources