首先,您
property实际上不是财产,而是领域。最小的属性声明如下所示:
public static SolidColorBrush Property { get; set; }请注意,该名称以大写字母开头,这是C#中广泛接受的编码约定。
因为您还希望每当属性值更改时都发出更改通知,因此您需要声明一个属性更改的事件(对于非静态属性,通常通过实现INotifyPropertyChanged接口来完成)。
对于静态属性,WPF 4.5(或4.0?)中提供了一种新机制,您可以在其中编写如下的静态属性更改事件和属性声明:
public static class AppStyle{ public static event PropertyChangedEventHandler StaticPropertyChanged; private static void onStaticPropertyChanged(string propertyName) { StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName)); } private static SolidColorBrush property = Brushes.Red; // backing field public static SolidColorBrush Property { get { return property; } set { property = value; onStaticPropertyChanged("Property"); } } public static void ChangeTheme() { Property = Brushes.Blue; }}与静态属性的绑定将用括号中的属性路径编写:
Background="{Binding Path=(style:AppStyle.Property)}"


