一、dependency屬性
dependency屬性最大的特點就是內建的變化通知功能。
提供dependency屬性功能主要是為了直接在宣告標記的時候就提供豐富的功能。wpf宣告的友好設計的關鍵是大量的使用屬性。如果沒有dependency屬性,我們將編寫大量的**來實現屬性所展示的功能。
1、變化通知功能:屬性的值被改變後,通知介面進行更新。
2、屬性值的繼承功能:子元素將繼承父元素中對應屬性名的值。
3、支援多個提供物件:我們可以通過多種方式來設定dependency屬性的值。
先看乙個例子:
public class button : buttonbase
// 申名了乙個dependency靜態屬性
public static readonly dependencyproperty isdefaultproperty;
static button()
// 註冊這個屬性到button中
button.isdefaultproperty = dependencyproperty.register(「isdefault」, typeof(bool), typeof(button),
new frameworkpropertymetadata(false,
new propertychangedcallback(onisdefaultchanged)));
// 屬性預設
public bool isdefault
get
set
//屬性改變的時候要呼叫的方法
private static void onisdefaultchanged(
dependencyobject o, dependencypropertychangedeventargs e)
在上面的實現**中,system.windows.dependencyproperty類表示的靜態欄位isdefaultproperty才是真正 的dependency屬性。為了方便,所有的dependency屬性都是公有、靜態的,並且還有屬性字尾。通常建立dependency屬性可用靜態 方法dependencyproperty.register。引數的屬性名稱、型別、使用這個屬性的類。並且可以根據過載的方法提供其他的通知事件處理和預設值等等。
待續............
WPF的XAML依賴屬性
屬性分三種,基本屬性 附加屬性和依賴屬性。屬性有四種使用方式,第一種是使用屬性語法,每個屬性對應乙個屬性值,屬性值型別必須與屬性匹配 乙個標記中可以設定物件的多個屬性,只有例項化物件才可以設定例項屬性 第二種是使用屬性元素語法,某些屬性可以使用屬性元素語法來設定 第三種是使用內容元素語法,某些元素的...
WPF學習筆記 在XAML裡繫結
binding除了預設建構函式外,還有乙個可以傳入path的建構函式,下面兩種方式實現的功能是一樣的。text backgroud aliceblue fontsize 16 text backgroud aliceblue fontsize 16 這裡使用elementname來設定源物件,而沒有...
學習WPF 了解WPF中的XAML
xaml的簡單說明 xaml是用於例項化.net物件的標記語言,主要用於構建wpf的使用者介面 xaml中的每乙個元素都對映為.net類的乙個例項,例如對映為wpf的button物件 xaml可以在乙個元素中巢狀另乙個元素,例如grid元素可以巢狀button元素 了解xaml visualstud...