依賴屬性就是自己自己沒有值,通過binding從資料來源獲得值,就是依賴在別人身上,擁有依賴屬性的物件稱為依賴物件
1、在樣式中設定屬性。
2、屬性支援資料繫結。
3、使用動態資源引用設定屬性。
4、從元素樹中的父元素自動繼承屬性值。
5、屬性可進行動畫處理。
6、屬性系統在屬性系統、環境或使用者執行的操作或者讀取並使用樣式更改了屬性以前的值時報告。
7、使用已建立的、wpf 程序也使用的元資料約定,
例如報告更改屬性值時是否要求布局系統重新編寫元素的視覺化物件。依賴物件建立時並不包含儲存資料空間。wpf中必須使用依賴物件作為依賴屬性的宿主。
用於資料繫結
依賴屬性是針對乙個類的靜態屬性
每個類例項去這個靜態屬性裡面get屬於自己的那乙個屬性
物件有屬性,屬性的值去公共資料區域【所有類例項的依賴屬性都放在乙個靜態變數(公共區域)裡面】裡面取
優勢:公共資料區域不在ui執行緒,所以可以隨時修改數值
tips
wpf介面元素為依賴物件,所有屬性為依賴屬性,所以支援繫結
自定義控制項
public class customborder : border
//屬性
public double transparency
set
}//註冊依賴屬性
public readonly static dependencyproperty transparencydependency =
dependencyproperty.register(
//屬性名
"transparency",
//屬性資料型別
typeof(double),
//擁有者
typeof(customborder),
//處理方法
new propertymetadata(new propertychangedcallback(transparencypropertychangedcallback))
);//當屬性修改時的處理
static void transparencypropertychangedcallback(dependencyobject sender, dependencypropertychangedeventargs e)}}
dependencyproperty的register方法
有幾種過載方法,下面展示兩種
//
// 摘要:
// 使用指定的屬性名稱、屬性型別、所有者型別和屬性元資料註冊依賴屬性。
//// 引數:
// name:
// 要註冊的依賴屬性的名稱。
//// propertytype:
// 屬性的型別。
//// ownertype:
// 正在註冊依賴屬性的所有者型別。
//// typemetadata:
// 依賴屬性的屬性元資料。
//// 返回結果:
// 乙個依賴屬性識別符號,應使用它來設定類中 public static readonly 欄位的值。 稍後將此識別符號用來引用依賴屬性,從而實現以程式設計方式設定其值或獲取元資料等操作。
public static dependencyproperty register(string name, type propertytype, type ownertype, propertymetadata typemetadata);
前台local:customborder>
grid>
示例** WPF 依賴屬性
原文 wpf 依賴屬性 屬性和事件是.net抽象模型的核心部分,wpf在這之上增加了dependency property 依賴屬性 依賴屬性使用更高效的儲存機制,並且支援附加的功能,更改通知 屬性值繼承 在元素樹中向下傳播預設屬性值 以及減少屬性儲存空間。依賴屬性是wpf動畫 資料繫結和樣式的基礎...
WPF依賴屬性
依賴屬性是一種可以自己沒有值,並能通過使用binding從資料來源獲取值 依賴在別人身上 的屬性。優點 wpf的所有控制項都是依賴屬性。依賴物件被dependencyobject類實現,依賴屬性由dependencyproperty類實現。dependencyobject有getvalue setv...
WPF 依賴屬性
屬性是我們再熟悉不過的了,那麼究竟依賴屬性怎麼寫呢?依賴屬性和屬性到底有什麼區別和聯絡呢?其實依賴屬性的實現很簡單,只要做以下步驟就可以實現 第一步 讓所在型別繼承自 dependencyobject基類,在wpf中,我們仔細觀察框架的類圖結構,你會發現幾乎所有的 wpf 控制項都間接繼承自depe...