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 标识符的类的静态方法。
自定义依赖项属性 以及如何编写此方法,以及 PropertyChangedCallback 委托的参考主题。
注意
创建后,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 值,指定依赖项属性的固定默认值。 |