2009-06-05 8 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"> 

변환기 :

<IsMyValueLowEnoughConverter x:Key="IsMyValueLowEnoughConverter" /> 
:

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 파일의 자원에 컨버터를 넣어주십시오