DependencyObject 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示参与依赖属性系统的对象。
public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
- 继承
- 派生
- 属性
示例
以下示例派生自 DependencyObject 以创建新的抽象类。 然后, 类注册一个附加属性,并包括该附加属性的支持成员。
public abstract class AquariumObject3 : DependencyObject
{
public enum Bouyancy
{
Floats,
Sinks,
Drifts
}
public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
"Bouyancy",
typeof(Bouyancy),
typeof(AquariumObject3),
new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
new ValidateValueCallback(ValidateBouyancy)
);
public static void SetBouyancy(UIElement element, Bouyancy value)
{
element.SetValue(BouyancyProperty, value);
}
public static Bouyancy GetBouyancy(UIElement element)
{
return (Bouyancy)element.GetValue(BouyancyProperty);
}
private static bool ValidateBouyancy(object value)
{
Bouyancy bTest = (Bouyancy) value;
return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
}
public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
"IsDirty",
typeof(Boolean),
typeof(AquariumObject3)
);
}
Public MustInherit Class AquariumObject3
Inherits DependencyObject
Public Enum Bouyancy
Floats
Sinks
Drifts
End Enum
Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
element.SetValue(BouyancyProperty, value)
End Sub
Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
Return CType(element.GetValue(BouyancyProperty), Bouyancy)
End Function
Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
Dim bTest As Bouyancy = CType(value, Bouyancy)
Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
End Function
Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class
注解
类DependencyObject支持在其许多派生类上Windows Presentation Foundation (WPF) 属性系统服务。
属性系统的主要功能是计算属性值,并提供有关已更改的值的系统通知。 参与属性系统的另一个关键类是 DependencyProperty。 DependencyProperty 支持将依赖属性注册到属性系统中,并提供有关每个依赖属性的标识和信息,而 DependencyObject 作为基类,对象可以使用依赖属性。
DependencyObject 服务和特征包括:
依赖属性承载支持。 可以通过调用 Register 方法并将方法的返回值存储为类中的公共静态字段来注册依赖属性。
附加属性托管支持。 可以通过调用 RegisterAttached 方法,并将方法的返回值存储为类中的公共静态只读字段来注册附加属性。 (还有其他成员要求;请注意,这表示附加属性的 WPF 特定实现。有关详细信息,请参阅 附加属性概述。) 然后可以在派生自 DependencyObject的任何类上设置附加属性。
获取、设置和清除 上存在的任何依赖属性的值的 DependencyObject实用工具方法。
元数据、强制值支持、属性更改通知,以及重写依赖属性或附加属性的回调。 此外, DependencyObject 类还有助于获取依赖属性的每个所有者属性元数据。
派生自 ContentElement、 Freezable或 Visual的类的通用基类。 另 UIElement一个基元素类 (具有包含 Visual.)
构造函数
DependencyObject() |
初始化 DependencyObject 类的新实例。 |
属性
DependencyObjectType |
获取 DependencyObjectType 包装此实例的 CLR 类型的 。 |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
IsSealed |
获取一个值,该值指示此实例当前是否为密封的(只读)。 |