2013-05-12 61 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