1. 什么是附加屬性(attached property )

附加屬性依賴屬性的一種特殊形式,常見的Grid.Row,Canvas.Left都是附加屬性。

/// <summary>//  從指定元素獲取 Left 依賴項屬性的值。/// </summary>/// <param name="obj">The element from which the property value is read.</param>/// <returns>Left 依賴項屬性的值</returns>public static double GetLeft(DependencyObject obj){
    return (double)obj.GetValue(LeftProperty);}/// <summary>/// 將 Left 依賴項屬性的值設(shè)置為指定元素。/// </summary>/// <param name="obj">The element on which to set the property value.</param>/// <param name="value">The property value to set.</param>public static void SetLeft(DependencyObject obj, double value){
    obj.SetValue(LeftProperty, value);}/// <summary>/// 標(biāo)識 Left 依賴項屬性。/// </summary>public static readonly DependencyProperty LeftProperty =
    DependencyProperty.RegisterAttached("Left", typeof(double), typeof(MyCanvas), new PropertyMetadata(0d));

附加屬性的簡單定義如上述代碼所示??梢钥闯龊鸵蕾噷傩圆煌牡胤皆谟跊]有作為屬性包裝器的Setter和Getter,而多了兩個靜態(tài)函數(shù)GetXXX和SetXXX。并且注冊標(biāo)識符使用DependencyProperty.RegisterAttached而不是DependencyProperty.Register。

2. 附加屬性有什么作用

和依賴屬性不同的地方在于,依賴屬性是依賴對象本身的屬性,附加屬性是附加在其他對象身上的屬性,通俗來說就是在別的對象內(nèi)插入自己的屬性。上面提到的Grid.Row,就是Grid將Row屬性附加到?jīng)]有Row屬性的其它類中,以便進(jìn)行布局。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式