有没有办法通过绑定到视图模型属性来更改WPF进度条的颜色

时间:2010-08-18 17:07:11

标签: wpf mvvm progress-bar

我想要一个进度条来改变它的颜色,具体取决于当前值的范围。我想知道进度条上是否有一个属性可以绑定一个视图模型属性来改变颜色。 WPF进度条上是否存在此类属性?

2 个答案:

答案 0 :(得分:2)

只需将前景颜色更改为您喜欢的颜色:

<ProgressBar Foreground="{Binding PBarColorBrush}" Value="{Binding PBarValue}" />

修改(回答您的评论):是的,您需要Brush属性(几乎所有颜色属性都在WPF中刷过)

但不要担心这很简单:

Public Sub DoWork()
    For i = 1 To 100
        If i < 50 Then
            PBarColorBrush = Brushes.Blue
        ElseIf i < 80 Then
            PBarColorBrush = Brushes.Green
        Else
            PBarColorBrush = Brushes.Red
        End If
    Next

End Sub

财产:

Private _PBarColorBrush As Brush
Public Property PBarColorBrush() As Brush
    Get
        Return _PBarColorBrush
    End Get
    Set(ByVal value As Brush)
        _PBarColorBrush = value
        OnPropertyChanged("PBarColorBrush")
    End Set
End Property

答案 1 :(得分:0)

您是否尝试更改进度条的整个颜色,或者您是否尝试根据值将进度条的不同部分设置为不同的颜色?如果是后者,你需要一个渐变画笔,根据进度条中的值设置不同的渐变停止。