此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文
信息
您所需的主题如下所示。但此主题未包含在此库中。

DependencyObject 类

表示参与 依赖项属性 系统的对象。

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      更多...

命名空间:  System.Windows
程序集:  WindowsBase(在 WindowsBase.dll 中)
XAML 的 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[NameScopePropertyAttribute("NameScope", typeof(NameScope))]
public class DependencyObject : DispatcherObject
<DependencyObject .../>

DependencyObject 类型公开以下成员。

  名称说明
公共方法DependencyObject初始化 DependencyObject 类的新实例。
页首

  名称说明
公共属性DependencyObjectType获取包装此实例的 CLR 类型的 DependencyObjectType 。 
公共属性Dispatcher获取与此 DispatcherObject 关联的 Dispatcher (继承自 DispatcherObject。)
公共属性IsSealed获取一个值此实例当前是否已密封 (只读)。
页首

  名称说明
公共方法CheckAccess确定调用线程是否可以访问此 DispatcherObject (继承自 DispatcherObject。)
公共方法ClearValue(DependencyProperty)清除本地值属性。 将清除的属性由 DependencyProperty 标识符指定。
公共方法ClearValue(DependencyPropertyKey)清除本地值只读属性。 将清除的属性由 DependencyPropertyKey指定。
公共方法CoerceValue强制指定的 依赖项属性的值。 此操作将调用在属性元数据中指定的所有 CoerceValueCallback 函数完成为依赖项属性,则在调用 DependencyObject存在。
公共方法Equals确定提供的 DependencyObject 是否与当前 DependencyObject等效。 (重写 Object.Equals(Object)。)
受保护的方法Finalize允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法GetHashCode获取此 DependencyObject的 哈希代码 。 (重写 Object.GetHashCode()。)
公共方法GetLocalValueEnumerator创建确定哪些专用的枚举数依赖项属性本地本 DependencyObject设置值。
公共方法GetType获取当前实例的 Type (继承自 Object。)
公共方法GetValue返回 依赖项属性 的当前有效值在 DependencyObject的此实例的。
公共方法InvalidateProperty计算指定的依赖项属性的有效值
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法OnPropertyChanged调用,每当更新了所有 依赖项属性 的有效值本 DependencyObject 的。 更改的特定依赖项属性在事件数据报告。
公共方法ReadLocalValue,如果它存在,则返回 依赖项属性的本地值。
公共方法SetCurrentValue设置 依赖项属性 的值,而不更改其值的来源。
公共方法SetValue(DependencyProperty, Object)设置 依赖项属性的本地值,指定由其依赖项属性标识符。
公共方法SetValue(DependencyPropertyKey, Object)设置是只读的 依赖项属性的本地值,指定由依赖项属性的 DependencyPropertyKey 标识符。
受保护的方法ShouldSerializeProperty返回一个值序列化过程是否应序列化提供的 依赖项属性的值。
公共方法ToString返回表示当前对象的字符串。 (继承自 Object。)
公共方法VerifyAccess强制调用线程具有此 DispatcherObject 的访问权限。 (继承自 DispatcherObject。)
页首

DependencyObject 类启用 Windows Presentation Foundation (WPF) 属性在派生类中的系统服务。

属性系统的主要功能是计算属性的值并提供有关已更改的值的系统通知。 参与属性系统的另一个关键类是 DependencyProperty。 如果基类,使对象能够使用依赖项属性,DependencyProperty 启用依赖项属性注册到属性系统,并提供确定以及有关每个依赖项属性,,而 DependencyObject

DependencyObject 服务和属性包括:

  • 依赖项属性承载支持。 您注册 依赖项属性 通过调用 Register 方法和存储方法的返回值作为类的公共静态字段。

  • 附加属性承载支持。 您注册 附加属性 通过调用 RegisterAttached 方法和存储方法的返回值作为类的公共静态只读字段。 (还有其他成员要求;记录下表示附加属性的一个 WPF 特定实现。 有关详细信息,请参见 附加属性概述。) 该附加属性在从 DependencyObject任何派生类随后可以设置。

  • 访问,设置和清除的实用工具方法在 DependencyObject存在任何 依赖项属性 的值。

  • 元数据,强制值支持,属性更改通知并重写回调 依赖项属性 或 附加属性的。 此外, DependencyObject 类实现依赖项属性的每个所有者属性元数据。

  • ContentElementFreezableVisual派生的类的公共基类。 (UIElement,另一个基元素类,具有包含 Visual。) 的类层次结构

下面的示例从 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)
    );
}


.NET Framework

受以下版本支持:4.5、4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

并不是.NET Framework 对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求.

此类型的任何公共static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

显示:
© 2015 Microsoft