• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

IT-哲

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

WPF-依赖属性与依赖对象

摘自MSDN

DependencyProperty 类
表示可以通过方法设置的属性,样式,数据绑定、动画和继承。
命名空间: System.Windows
支持:

属性在样式中设置。有关更多信息,请参见 样式设置和模板化。
属性可以通过数据绑定设置为。有关数据绑定依赖项属性的更多信息,请参见 如何:绑定两个控件的属性。
可以设置该属性使用动态资源引用。有关更多信息,请参见 XAML 资源。
属性可以从元素树中的父元素自动继承其属性值。有关更多信息,请参见 属性值继承。
属性进行动画处理。有关更多信息,请参见 动画概述。
属性可以报告何时更改了属性以前的值,而属性可以强制。有关更多信息,请参见 依赖项属性回调和验证。
属性信息移到 WPF报告,例如更改属性值是否要求布局系统重新编写元素的可视化对象。
属性在 适用于 Visual Studio 的 WPF 设计器接收支持。例如,属性在属性 窗口中编辑。


方法

AddOwner(Type)
添加另一个类型作为已注册的 依赖项属性 的所有者。

AddOwner(Type, PropertyMetadata)
添加另一个类型作为已注册的 依赖项属性 的所有者,提供 依赖项属性 元数据为依赖项属性,因为它在提供的所有者类型将存在。

Equals(Object)
确定指定的对象是否等于当前对象。 (继承自 Object。)

GetHashCode
返回此 DependencyProperty的 哈希代码 。 (重写 Object.GetHashCode()。)

GetMetadata(DependencyObject)
当在指定的对象实例,用于返回此 依赖项属性 的元数据。

GetMetadata(DependencyObjectType)
当在一个指定类型,用于返回此 依赖项属性 的元数据。

GetMetadata(Type)
以便在指定的现有类型,用于返回此 依赖项属性 的元数据。

GetType
获取当前实例的 Type。 (继承自 Object。)

IsValidType
确定一个指定是否对该依赖项属性类型可接受,如签出在原始注册依赖项属性提供的属性类型。

IsValidValue
确定提供的值是否为属性的类型接受通过检查基本类型,可能,如果它在值中允许的范围该类型的。

OverrideMetadata(Type, PropertyMetadata)
为此 依赖项属性 指定备用元数据,则存在一个指定类型的实例时,重写为依赖项属性存在的元数据,当从基类型继承而来。

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)
提供只读 依赖项属性 的备用元数据,则存在初始注册依赖项属性提供一个指定类型的实例时,重写元数据。必须通过只读依赖项属性的 DependencyPropertyKey 可以避免引发异常。

Register(String, Type, Type)
注册指定的属性名、属性类型和所有者类型的 依赖项属性 。

Register(String, Type, Type, PropertyMetadata)
注册指定的属性名、属性类型、所有者类型和属性元数据的 依赖项属性 。

Register(String, Type, Type, PropertyMetadata, ValidateValueCallback)
注册指定的属性名、属性类型、所有者类型、属性元数据和值验证回调的 依赖项属性 属性。

RegisterAttached(String, Type, Type)
注册指定的属性名、属性类型和所有者类型的 附加属性 。

RegisterAttached(String, Type, Type, PropertyMetadata)
注册指定的属性名、属性类型、所有者类型和属性元数据的 附加属性 。

RegisterAttached(String, Type, Type, PropertyMetadata, ValidateValueCallback)
注册指定的属性类型、所有者类型、属性元数据和值验证回调的 附加属性 属性。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)
注册只读 附加属性,具有指定的属性类型、所有者类型和属性元数据。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)
注册只读 附加属性,具有指定的属性类型、所有者类型、属性元数据和验证回调。

RegisterReadOnly(String, Type, Type, PropertyMetadata)
注册只读 依赖项属性,具有指定的属性类型、所有者类型和属性元数据。

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)
注册只读 依赖项属性,具有指定的属性类型、所有者类型、属性元数据和验证回调。

ToString
返回 依赖项属性的字符串表示形式。 (重写 Object.ToString()。)

 

 

 

DispatcherObject 类

表示与 Dispatcher 关联的对象。

只有在其上创建 Dispatcher 的线程才可以直接访问 DispatcherObject。 若要从不同于在其上创建 DispatcherObject 的线程的某个线程访问 DispatcherObject,请对与 DispatcherObject 关联的 Dispatcher 调用 Invoke 或 BeginInvoke。

需要强制线程安全的 DispatcherObject 的子类可以通过对所有公共方法调用 VerifyAccess 来强制线程安全。 这样可以保证调用线程是在其上创建 DispatcherObject 的线程。

无法单独对 DispatcherObject 进行实例化;也就是说,所有构造函数都是受保护的。

派生自 DispatcherObject 的对象具有线程关联。

派生自 Freezable 的对象在被冻结时是自由线程对象。

在 WPF 中,DispatcherObject 只能通过与它关联的 Dispatcher 进行访问。例如,后台线程不能更新与 UI 线程中的 Dispatcher 关联的 Button 内容。为了使该后台线程能够访问 Button 的 Content 属性,该后台线程必须将此工作委托给与该 UI 线程关联的 Dispatcher。这可以通过使用 Invoke 或 BeginInvoke 来完成。Invoke 是同步操作,而 BeginInvoke 是异步操作。该操作将按指定的 DispatcherPriority 添加到 Dispatcher 的队列中。

 


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

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

DependencyObject 服务和属性包括:

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

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

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

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

从 ContentElement、 Freezable或 Visual派生的类的公共基类。(UIElement,另一个基元素类,具有包含 Visual。) 的类层次结构

方法

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。)

posted on 2013-04-18 13:45  IT-哲  阅读(726)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3