0

我正在尝试仅通过数据绑定设置滑块值。我不希望用户能够手动更改滑块值。这是片段。关于如何做的任何建议。

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

                               />

我缺少任何属性吗?

4

1 回答 1

1

正如 wojtek 建议的那样,您可以使用 IsEnabled="False" 来禁用输入以影响滑块。你得到这个:

现在,您还需要更改 Slider 的填充颜色。在这里,您有两个选择:

  1. 重新模板滑块并更改“禁用”视觉状态以查看您想要的样子。在 Blend 中,右键单击滑块并选择“编辑模板 > 编辑副本”。然后,找到您要更改的颜色。在这里,这些将是填充颜色、拇指背景和禁用状态的拇指边框笔刷。例如,更改以下 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

于 2013-05-13T07:19:06.450 回答