此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

DependencyObject 类

2013/12/13

表示一个参与 Windows Phone 依赖项属性系统的对象。DependencyObjectUIElementGeometryFrameworkTemplateStyleResourceDictionary 等若干个其他重要的 Windows Phone 类的直接基类。

System.Object
  System.Windows.DependencyObject
    更多...

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)

声明
Public MustInherit Class DependencyObject

DependencyObject 类型公开以下成员。

  名称说明
受保护的方法DependencyObject初始化 DependencyObject 类的新实例。
返回顶部

  名称说明
公共属性Dispatcher获取与此对象关联的 Dispatcher
返回顶部

  名称说明
公共方法CheckAccess确定调用线程是否可以访问此对象。
公共方法ClearValue清除依赖项属性的本地值。
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetAnimationBaseValue返回为 Windows Phone 依赖项属性设置的任意基值,在动画不活动时将应用它们。
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法GetValueDependencyObject 返回依赖项属性的当前有效值。
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ReadLocalValue返回依赖项属性的本地值(如果设置了本地值)。
公共方法SetValueDependencyObject 设置依赖项属性的本地值。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

DependencyObject 类对它的许多派生类启用 Windows Phone 依赖项属性系统服务。有关依赖项属性概念的概述,请参见Windows Phone 的依赖项属性

属性系统的主要功能是计算属性的值,并提供有关值已更改的系统通知。另一个参与属性系统的关键类是 DependencyPropertyDependencyProperty 允许在属性系统中注册依赖项属性,而 DependencyObject 作为基类则使对象能够使用和设置依赖项属性。

DependencyObject 包括以下服务和特征:

  • 依赖项属性承载支持。

  • 自定义依赖项属性宿主支持。通过调用 Register 方法并将该方法的返回值作为公共静态字段存储在 DependencyObject 类中,可以注册依赖项属性。此外,RegisterownerType 参数必须是 DependencyObject 的类型。

  • 附加属性承载支持。

  • 自定义附加属性宿主支持。通过调用 RegisterAttached 方法并将该方法的返回值作为公共静态字段存储在类中,即可为附加属性用法注册依赖项属性。

  • 存在于 DependencyObject 上的任何依赖项属性值的 get 和 set 实用工具方法。

  • 高级线程化方案的调度程序 API。

  • 通过启用要设置为表达式(表达式将在以后的对象生存期内的某个时刻进行计算)属性进行基本数据绑定和样式支持。

对于大多数应用程序方案,一般不直接从 DependencyObject 派生。而是可以从特定控件、某个控件基类 (ContentControl; Control; ItemsControl)、FrameworkElement 或从仍参与 UI 的非控件类(如 PanelGrid)派生。在以下情况下适于从 DependencyObject 派生:您正在定义希望依赖项属性处于活动状态的业务或数据存储对象,或正在创建将拥有附加属性的服务支持类。然而,对于基本数据对象,您可能会实现接口 INotifyPropertyChanged,因为通过实现该接口您可以将任意对象用作数据的基础。有关更多信息,请参见Windows Phone 的数据绑定

DependencyObject 依赖项属性可以是数据绑定的目标。在 XAML 中,您可以为这类属性指定 Binding 特性值,就像与属性绑定的数据受 FrameworkElement 支持的其他情况一样。但是,DependencyObject 未实现 DataContextSetBinding。因此,要继承数据上下文,必须有一个包含可定义该数据上下文的 FrameworkElement。有关更多信息,请参见Windows Phone 的数据绑定Windows Phone 的依赖项属性

下面的示例定义从 DependencyObject 派生的类,并定义附加属性和标识符字段。此类的方案是,此类是声明其他 UI 元素可在 XAML 中设置的附加属性的服务类,并且该服务可能在运行时作用于这些 UI 元素上的附加属性值。


public abstract class AquariumServices : DependencyObject
{
    public enum Bouyancy {Floats,Sinks,Drifts}

    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      "Bouyancy",
      typeof(Bouyancy),
      typeof(AquariumServices),
      new PropertyMetadata(Bouyancy.Floats)
    );
    public static void SetBouyancy(DependencyObject element, Bouyancy value)
    {
        element.SetValue(BouyancyProperty, value);
    }
    public static Bouyancy GetBouyancy(DependencyObject element)
    {
        return (Bouyancy)element.GetValue(BouyancyProperty);
    }
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

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

System.Object
  System.Windows.DependencyObject
    Microsoft.Phone.Maps.Controls.MapElement
    Microsoft.Phone.Maps.Controls.MapOverlay
    Microsoft.Phone.Shell.ProgressIndicator
    Microsoft.Phone.Shell.SystemTray
    System.Windows.AssemblyPart
    System.Windows.Automation.Peers.AutomationPeer
    System.Windows.Controls.ColumnDefinition
    System.Windows.Controls.MultiScaleSubImage
    System.Windows.Controls.RowDefinition
    System.Windows.Data.CollectionViewSource
    System.Windows.DependencyObjectCollection(Of T)
    System.Windows.Deployment
    System.Windows.Documents.TextElement
    System.Windows.ExternalPart
    System.Windows.FrameworkTemplate
    System.Windows.Icon
    System.Windows.Ink.DrawingAttributes
    System.Windows.Ink.Stroke
    System.Windows.Input.InputMethod
    System.Windows.Input.InputScope
    System.Windows.Input.InputScopeName
    System.Windows.Input.ManipulationDelta
    System.Windows.Input.ManipulationVelocities
    System.Windows.Input.TouchDevice
    System.Windows.Input.TouchPoint
    System.Windows.Media.Animation.ColorKeyFrame
    System.Windows.Media.Animation.DoubleKeyFrame
    System.Windows.Media.Animation.EasingFunctionBase
    System.Windows.Media.Animation.KeySpline
    System.Windows.Media.Animation.ObjectKeyFrame
    System.Windows.Media.Animation.PointKeyFrame
    System.Windows.Media.Animation.Timeline
    System.Windows.Media.Brush
    System.Windows.Media.CacheMode
    System.Windows.Media.CaptureDevice
    System.Windows.Media.CaptureSource
    System.Windows.Media.GeneralTransform
    System.Windows.Media.Geometry
    System.Windows.Media.GradientStop
    System.Windows.Media.ImageSource
    System.Windows.Media.MultiScaleTileSource
    System.Windows.Media.PathFigure
    System.Windows.Media.PathSegment
    System.Windows.Media.Projection
    System.Windows.Media.TimelineMarker
    System.Windows.Navigation.JournalEntry
    System.Windows.PresentationFrameworkCollection(Of T)
    System.Windows.ResourceDictionary
    System.Windows.SetterBase
    System.Windows.Style
    System.Windows.TriggerAction
    System.Windows.TriggerBase
    System.Windows.UIElement
    System.Windows.VisualState
    System.Windows.VisualStateGroup
    System.Windows.VisualStateManager
    System.Windows.VisualTransition

显示:
© 2015 Microsoft