Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于范围WPF设置进度条前景色的动画_C#_Wpf_Xaml_Mvvm - Fatal编程技术网

C# 基于范围WPF设置进度条前景色的动画

C# 基于范围WPF设置进度条前景色的动画,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个进度条,我需要根据特定范围设置动画,例如: 0-30-将进度条的前景设置为红色 31-60-将进度条的前景设置为橙色 61-100-将进度条的前景设置为绿色 这就是我目前拥有的: <ProgressBar Height="12" Canvas.Left="31" Canvas.Top="75" Width="24" Value="0"> <ProgressBar.Triggers> <EventTrig

我有一个进度条,我需要根据特定范围设置动画,例如: 0-30-将进度条的前景设置为红色 31-60-将进度条的前景设置为橙色 61-100-将进度条的前景设置为绿色

这就是我目前拥有的:

<ProgressBar Height="12" Canvas.Left="31" Canvas.Top="75" Width="24" Value="0">
            <ProgressBar.Triggers>
                <EventTrigger RoutedEvent ="Loaded">
                    <BeginStoryboard>
                        <Storyboard >
                            <DoubleAnimation Storyboard.TargetProperty="Value" From="0" To="{Binding Price, Mode=TwoWay}" Duration="0:0:0.3"/>
                            <ColorAnimation Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)" To="Orange" Duration="0:0:0.3"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </ProgressBar.Triggers>
        </ProgressBar>


有什么方法可以做到这一点吗?

正如WPFUser所说,您可以使用
IValueConverter
,它根据int
在此处输入code
值生成颜色。在这种情况下,您应该返回:

00-30:红色 31-60:橙色 61-100:绿色


然后当
值为65时,使用ProgressBar foregound

上返回的值:
前景是红-橙-绿还是只有绿色?每当进度值更改时,您都会收到回调?您可以使用IValueConverter@NawedNabiZada应该是green@WPFUser你能给我举个例子吗?