[英]How to change the progress bar text color based on the progress percentage 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"/>
如下所示綁定TextBlock's Text
屬性,並將DataTrigger
與Converter
for 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>
轉換器代碼:
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.