2016-06-28 23 views
0

Ich habe den folgenden Code geschrieben, um einen Fortschrittsbalken und einen Text anzuzeigen, der den Prozentsatz anzeigt. Dieser Textblock wird auf der Leiste selbst platziert. Aber die Schrift ist jetzt weiß. Wie kann ich eine Bedingung hinzufügen, um es schwarz zu machen, wenn der Installationsfortschritt es nicht passiert hat und wenn es dann musste, muss ich es in weiß ändern. Wie kann ich das machen? Bitte um Rat.Wie ändert sich die Fortschrittsbalken-Textfarbe basierend auf dem Fortschrittsprozentsatz in WPF?

<ProgressBar Minimum="0" Maximum="100" Background="#FF1B1A1A" Value="{Binding Progress }" HorizontalAlignment="Stretch" Margin="20,182,20,121" Height="20" BorderBrush="#FF1B1A1A" > 
     <ProgressBar.Foreground> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FF0A92FB"/> 
       <GradientStop Color="#FF022F52" Offset="1"/> 
      </LinearGradientBrush> 
     </ProgressBar.Foreground> 

    </ProgressBar> 
    <TextBlock Name="progressLbl" Text="{Binding Progress,StringFormat={}{0}%}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="18,182,10,121" Width="40" Height="20" Foreground="#FFE6E6E6" FontSize="12" FontFamily="Segoe UI Light"/> 
+1

Datatrigger auf Ihrem TextBlock- an einen/GreaterThan LessThan verhakt Wandler an den Wert der ProgressBar gebunden sollten schnelle Arbeit daraus machen. –

Antwort

0

Bindung TextBlock's Text Eigenschaft wie unten, und verwenden Sie DataTrigger mit Converter für Foreground.

<TextBlock Text="{Binding Value, ElementName=PBar1}" Margin="92,216,159,54"> 
     <TextBlock.Style> 
      <Style TargetType="TextBlock"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Value, ElementName=PBar1, Converter={StaticResource ConvPercentageKey}}" Value="LessThan50"> 
         <Setter Property="Foreground" Value="Red"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding Value, ElementName=PBar1, Converter={StaticResource ConvPercentageKey}}" Value="MoreThan50"> 
         <Setter Property="Foreground" Value="Yellow"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </TextBlock.Style> 
    </TextBlock> 

Converter Code:

public class PercentageConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     double v = Double.Parse(value.ToString()); 
     if (v < 50) 
      return "LessThan50"; 
     else 
      return "MoreThan50"; 
    } 

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