2009-06-05 12 views
0

スタイルを変更する特定の値の間に、ProgressBarにスタイルを適用したいとします。WPFプロパティの複数の値

<Style x:Key="ProBar" TargetType="{x:Type ProgressBar}">  
     <Style.Triggers> 
     <Trigger Property="Value" Value="<10"> 
      <Setter Property="Foreground"> 
      <Setter.Value> 
       <!--OrangeColour--> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFFFFFFF" Offset="0" /> 
       <GradientStop Color="#FFFDDF97" Offset="0.992" /> 
       <GradientStop Color="#FFF7DCAB" Offset="0.02" /> 
       <GradientStop Color="#FFFFDC9E" Offset="0.5" /> 
       <GradientStop Color="#FFFDA564" Offset="0.513" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
      </Setter> 
     </Trigger>  
     </Style.Triggers> 
    </Style> 

これはどのような方法でも可能ですか?

答えて

2

DataTrigger、バインディングとIValueConverter

<DataTrigger Binding="{Binding Value, Converter={StaticResource IsMyValueLowEnoughConverter}}" Value="True"> 

コンバータを使用します

public class IsMyValueLowEnoughConverter : IValueConverter 
{ 
    public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return ((int)value) < 10; 
    } 

    public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new System.NotImplementedException(); 
    } 
} 

があなたの元XAMLファイルのあなたのリソースにコンバータを入れてください:

<IsMyValueLowEnoughConverter x:Key="IsMyValueLowEnoughConverter" /> 
関連する問題