基于范围WPF的动画进度条前景颜色

时间:2017-03-03 11:34:48

标签: 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>
                <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>

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

正如WPFUser所说,您可以使用IValueConverter生成基于int enter code here值的颜色。在这种情况下,您应该返回:

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

然后使用ProgressBar foregound上返回的值