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 默认值的 。
PropertyMetadata
然后,在调用 RegisterAttached 时,将 用于附加属性注册。
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
包含属性更改的回调引用,则该方法必须是公开所应用 DependencyProperty 标识符的 PropertyMetadata
类的静态方法。 自定义 依赖属性 以及 PropertyChangedCallback 委托的参考主题介绍了如何编写此方法。
注意
创建后, PropertyMetadata
实例没有可用于查找回调甚至确定回调的方法名称的属性。 该信息被视为依赖属性的实现详细信息,只有依赖属性系统本身才能调用该方法。
实例化 PropertyMetadata 值
有两种方法可以实例化 PropertyMetadata
实例:构造函数和静态 PropertyMetadata.Create 方法。 其中每种方法都有多个签名。 使用构造函数更为常见。 但是,如果希望依赖属性的默认值机制是线程安全的,则必须使用 PropertyMetadata.Create 。 有关详细信息,请参阅自定义依赖属性主题的“ 自定义依赖属性的属性元数据 ”部分。
构造函数
PropertyMetadata(Object) |
使用属性默认值初始化 PropertyMetadata 类的新实例。 |
PropertyMetadata(Object, PropertyChangedCallback) |
使用属性默认值和回调引用初始化 PropertyMetadata 类的新实例。 |
属性
CreateDefaultValueCallback |
获取对提供默认属性值的回调方法的引用。 |
DefaultValue |
获取依赖属性的默认值。 |
方法
Create(CreateDefaultValueCallback) |
创建 PropertyMetadata 值,指定为依赖属性建立默认值的回调。 |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
创建 PropertyMetadata 值,指定为依赖属性建立默认值的回调和属性更改的回调。 |
Create(Object) |
创建 PropertyMetadata 值,为依赖属性指定固定默认值。 |
Create(Object, PropertyChangedCallback) |
创建 PropertyMetadata 值,指定依赖属性的固定默认值和属性更改的回调。 |