gpt4 book ai didi

wpf - 如何根据当前值当前所在的范围来根据其值更改进度条前景色

转载 作者:行者123 更新时间:2023-12-02 05:08:41 24 4
gpt4 key购买 nike

我已经检查了下面的问题,但我没有完全理解,因为我是 WPF 新手。 Is there a way to change the color of a WPF progress bar via binding to a view model property

如果您有任何 sample ,请提供给我。

最佳答案

您可以使用 value converter 将 ProgressBar 的 Foreground 属性绑定(bind)到其 Value 属性。它从 double 转换为 Brush,如下例所示。请注意,为了测试,还绑定(bind)了 ProgressBar 的 Value 属性,特别是与 Slider 控件的 Value 属性。

<Window.Resources>
<local:ProgressForegroundConverter x:Key="ProgressForegroundConverter"/>
</Window.Resources>
<StackPanel>
<ProgressBar Margin="10"
Value="{Binding ElementName=progress, Path=Value}"
Foreground="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Value, Converter={StaticResource ProgressForegroundConverter}}"/>
<Slider Name="progress" Margin="10" Minimum="0" Maximum="100"/>
</StackPanel>

绑定(bind)值转换器可能如下所示:

public class ProgressForegroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double progress = (double)value;
Brush foreground = Brushes.Green;

if (progress >= 90d)
{
foreground = Brushes.Red;
}
else if (progress >= 60d)
{
foreground = Brushes.Yellow;
}

return foreground;
}

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

关于wpf - 如何根据当前值当前所在的范围来根据其值更改进度条前景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com