PropertyMetadata 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
- 繼承
- 屬性
範例
這個範例會呼叫 PropertyMetadata(Object) 建構函式,這會建立 PropertyMetadata
,以報告 DependencyProperty的預設值。 呼叫 registerAttached 時,PropertyMetadata
會用於附加屬性註冊。
public abstract class AquariumServices : DependencyObject
{
public enum Buoyancy { Floats, Sinks, Drifts }
public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
"Buoyancy",
typeof(Buoyancy),
typeof(AquariumServices),
new PropertyMetadata(Buoyancy.Floats)
);
public static void SetBuoyancy(DependencyObject element, Buoyancy value)
{
element.SetValue(BuoyancyProperty, value);
}
public static Buoyancy GetBuoyancy(DependencyObject element)
{
return (Buoyancy)element.GetValue(BuoyancyProperty);
}
}
備註
定義 PropertyMetadata
實例是定義自定義相依性屬性的案例的一部分。 如需資訊和範例,請參閱
PropertyMetadata
值代表相依性屬性行為的兩個層面:
- 提供預設值,除非擁有者類型特別初始化值,或是由使用者程式代碼或其他機制設定值,否則會提供預設值作為 屬性的值。
- 參考如果相依性屬性系統偵測到相依性屬性已變更,所叫用的回呼。
一般而言,如果想要其中一個或兩種行為,相依性屬性只需要
PropertyMetadata
值。 否則,當相依性屬性向相依性屬性系統註冊相依性屬性時,可以傳遞propertyMetadata
參數的值null
。 如需詳細資訊,請參閱 DependencyProperty.Register。
如果您的 PropertyMetadata
包含屬性變更的回呼參考,該方法必須是公開套用 PropertyMetadata
DependencyProperty 標識符的類別靜態方法。 如何在自定義相依性屬性
注意
建立之後,PropertyMetadata
實例沒有可用來尋找回呼的屬性,甚至無法判斷回呼的方法名稱。 該資訊會被視為相依性屬性的實作詳細數據,而且只有相依性屬性系統本身才能叫用該方法。
具現化 PropertyMetadata 值
有兩種方法可以具現化 PropertyMetadata
實例:建構函式和靜態 PropertyMetadata.Create 方法。 每個方法都有多個簽章。 使用建構函式比較常見。 不過,如果您想要讓相依性屬性的預設值機制安全,則必須使用 PropertyMetadata.Create。 如需詳細資訊,請參閱 自定義相依性屬性 主題的一節。
建構函式
PropertyMetadata(Object, PropertyChangedCallback) |
使用屬性預設值和回呼參考,初始化 PropertyMetadata 類別的新實例。 |
PropertyMetadata(Object) |
使用屬性預設值,初始化 PropertyMetadata 類別的新實例。 |
屬性
CreateDefaultValueCallback |
取得提供預設屬性值之回呼方法的參考。 |
DefaultValue |
取得相依性屬性的預設值。 |
方法
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
建立 PropertyMetadata 值、指定回呼來建立相依性屬性的預設值,以及屬性變更回呼。 |
Create(CreateDefaultValueCallback) |
建立 PropertyMetadata 值,並指定回呼,以建立相依性屬性的預設值。 |
Create(Object, PropertyChangedCallback) |
建立 PropertyMetadata 值、指定相依性屬性的固定預設值,以及屬性變更回呼。 |
Create(Object) |
建立 PropertyMetadata 值,並指定相依性屬性的固定預設值。 |