如何自訂WPF的DependencyProperty相依屬性
撰文:吳俊毅 時間:2010/02/16 在WPF當中若沒有相依屬性幾乎無法做任何事情,因為您可能要重複定義許多共同的物件屬性,這不僅增加Pg許多無意義的工作且程式設計較沒有彈性。要實做WPF的相依屬性我們得在一個class中先宣告一個DependencyProperty物件,再定義一個屬性,這個屬性做為屬性變更告知之用,而透過DependencyProperty的連結,比較重要的是在相依屬性裡並不是使用我們在.NET應用程式裡慣用的get;set;的方式,而是使用在DependencyObject物件裡定義的SetValue()與GetValue()方法,如下程式: class ColorTextBlock: TextBlock { public static readonly DependencyProperty BackgroundColorProperty; public bool ChangedBackgroundColor { get { return (bool)GetValue(BackgroundColorProperty); } set { SetValue(BackgroundColorProperty, value); } } } 筆者希望透過ChangedBackgroundColor屬性被變更為true時,將自身物件的Background改為Blue,因此必須註冊BackgroundColorProperty這個DependencyProperty,以便告訴WPF的子系統有這個相依的事件必須在這個屬性遭到變更時觸發!怎麼做呢?首先我們必須在constructor裡放置FrameworkPropertyMetadata物件存放與DependencyProperty相關的屬性資料並設定其DefaultValue屬性與PropertyChangedCallback的...