2016-04-18 49 views

回答

1

正如斯坦默斯說,你可以用混合做到這一點,或者你可以修改Slider的模板在XAML設計。

要做到這一點,你可以打開文檔大綱,選擇你的Slider並右鍵單擊它,然後編輯模板,並編輯像下面的圖片副本:在

enter image description here

現在默認樣式,您可以找到禁用的可視狀態,並且可以將其內部的ObjectAnimationUsingKeyFrames修改爲您的預期樣式。

例如當這樣的禁用可以改變水平silder:

<VisualState x:Name="Disabled"> 
    <Storyboard> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="HeaderContentPresenter"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="HorizontalDecreaseRect"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="HorizontalTrackRect"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="Black" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="VerticalDecreaseRect"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="VerticalTrackRect"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="HorizontalThumb"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="Red" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="VerticalThumb"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="TopTickBar"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="BottomTickBar"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LeftTickBar"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="RightTickBar"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</VisualState> 

這很容易修改控件的默認模板,或者它也方便做這項工作與融合,就可以選擇一種方法來完成這項工作。

0

找出默認模板here 的顏色,並通過以下格式添加顏色覆蓋到你ResourceDictionary在app.xml中:

<ResourceDictionary.ThemeDictionaries> 
       <ResourceDictionary x:Key="Default"> 
        <SolidColorBrush x:Key="name of the key" Color="#7FF1F1F1" /> 
       </ResourceDictionary> 
      </ResourceDictionary.ThemeDictionaries> 
1

最簡單的方法是使用混合。

  1. 右鍵單擊VS ex MainPage.xaml中的文件,然後單擊帶有混合的設計。

  2. 上的對象和時間線右鍵單擊滑塊並選擇編輯 模板>編輯複製> OK(或者你可以改變它會 保存)。

  3. 現在你在模板設計。單擊狀態(在對象和時間線上方)

  4. 選擇禁用。

  5. 現在您處於錄製模式,會出現一個紅點。

  6. 儘管在拍攝模式選擇幻燈片的元件和改變他們的 顏色。(Horizo​​ntalThumb,VerticalThumb,Horizo​​ntalTrackRect等...)

  7. 完成,測試它。

1

MSDN,以下是殘疾人VisualStateSlider其中包含你需要玩一個名爲刷子。

<VisualState x:Name="Disabled"> 
      <Storyboard> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HeaderContentPresenter" 
             Storyboard.TargetProperty="Foreground"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HorizontalDecreaseRect" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HorizontalTrackRect" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="VerticalDecreaseRect" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="VerticalTrackRect" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HorizontalThumb" 
             Storyboard.TargetProperty="Background"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="VerticalThumb" 
             Storyboard.TargetProperty="Background"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledChromeDisabledHighBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TopTickBar" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BottomTickBar" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LeftTickBar" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RightTickBar" 
             Storyboard.TargetProperty="Fill"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" /> 
      </ObjectAnimationUsingKeyFrames> 
      </Storyboard> 
</VisualState> 

在你ResourceDisctionary,你可以定義

<SolidColorBrush x:Key="SystemControlDisabledChromeDisabledHighBrush">#0000FF</SolidColorBrush> 

添加的ResourceDictionary在App.xaml中

<Application 
... > 

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="ms-appx:///Resources/Brushes.xaml"></ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

RESU LT看起來像這樣

enter image description here