在Xaml中,如何以编程方式更改SolidColorBrush的值?

时间:2016-04-16 01:17:13

标签: xaml binding solidcolorbrush

您好我有一个xaml应用程序,在页面上的许多地方使用了一种特定的颜色。我想以编程方式更改此颜色的值。我不想单独更新每个对象的颜色。我试过这个:

<Grid
   Background="{Binding GalleryViewBrush, Mode=TwoWay}"
   Grid.Row="0"
   Grid.Column="0">

然后在codebehind:

public Brush GalleryViewBrush {get;组; }

GalleryViewBrush =新的SolidColorBrush(Colors.Red);

但颜色永远不会奏效。我也试过xbind,但没有运气

感谢

1 个答案:

答案 0 :(得分:0)

您的视图模型需要实现INotifyPropertyChanged,然后在刷子属性更改时触发PropertyChanged事件。传统上,这是在财产的制定者中完成的。

private Brush _myBrush;
public MyBrush {
    get { return _myBrush; }
    set {
        _myBrush = value;
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MyBrush));
    }
}

如果您的问题中GalleryViewBrush的获取/设置是您问题中代码示例中的实际内容,那可能就是问题所在。

在我上面的代码示例中记错误,我打了ATM。