开发者社区> luminji> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

WPF快速指导9:WPF中的属性(依赖项属性)

简介: WPF快速指导9:WPF中的属性(依赖项属性) 本文摘要: 1:什么是依赖项属性; 2:实现依赖项属性;   1:什么是依赖项属性     Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。
+关注继续查看

WPF快速指导9:WPF中的属性(依赖项属性)

本文摘要:

1:什么是依赖项属性;

2:实现依赖项属性;

 

1:什么是依赖项属性

    Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖项属性。

    依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值。这些其他输入可以包括系统属性(如主题和用户首选项)、实时属性确定机制(如数据绑定和动画/演示图板)、重用模板(如资源和样式)或者通过与元素树中其他元素的父子关系来公开的值。另外,可以通过实现依赖项属性来提供独立验证、默认值、监视其他属性的更改的回调以及可以基于可能的运行时信息来强制指定属性值的系统。派生类还可以通过重写依赖项属性元数据(而不是重写现有属性的实际实现或者创建新属性)来更改现有属性的某些具体特征。

    更通俗一点的理解就是,依赖项属性用来支持样式设置、数据绑定、继承、动画和默认值。

    讨论依赖项属性时所使用的术语:

  • 依赖项属性:一个由 DependencyProperty 支持的属性。

  • 依赖项属性标识符:一个 DependencyProperty 实例,在注册依赖项属性时作为返回值获得,之后将存储为一个类成员。在与 WPF 属性系统交互的许多 API 中,此标识符用作一个参数。

  • CLR“包装”:属性的实际 get 和 set 实现。这些实现通过在 GetValueSetValue 调用中使用依赖项属性标识符来合并此标识符,从而使用 WPF 属性系统为属性提供支持。


2:实现依赖项属性

下面的示例定义 IsSpinning 依赖项属性,并说明 DependencyProperty 标识符与它所支持的属性之间的关系。

public static readonly DependencyProperty IsSpinningProperty = 
    DependencyProperty.Register(
    "IsSpinning", typeof(Boolean),
...
    );
public bool IsSpinning
{
    get { return (bool)GetValue(IsSpinningProperty); }
    set { SetValue(IsSpinningProperty, value); }
}
NET C# 入门级 .NET C# 专业级 .NET 架构级 BS系统专业级 BS系统安全
1.开篇及C#程序、解决方案的结构
2.源码管理之TFS入门
3.打老鼠初级
……
21.CMS之主要功能实现
22.进程和线程基础
23.类型转换
24.算法基础
25.初级课程之剩余知识点
1.消灭打老鼠游戏中的自定义委托
2.垃圾回收
3.Dispose模式
……
16.异常使用指导
17.最常用的重构指导
18.Debug和IDE的进阶
19.Resharper的使用
20.ILSPY的使用
1.Socket入门
2.打造打老鼠游戏网络版
3.WCF入门
……
10.依赖注入
11.万物兼可测试
12.软件指标之覆盖率计算
13.软件指标之代码行
14.软件指标之圈复杂度、嵌套深度
1.HTML
2.WebForm原理
3.CSS必知必会
……
19.让浏览器缓存Shop
20.Asp.net的生命周期
21.Asp.net网站的发布以及调试晋级
22.BS程序的本质
23.压力测试我们的Shop
1.Fiddler必知必会
2.IE开发者工具必知必会
3.跨站脚本防范
4.权限欺骗防范
5.参数越界防范
6.会话劫持防范
7.CSRF防范
8.盗链防范
9.静态文件的保护


 
 
Creative Commons License本文基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
WPF快速指导15:动画
WPF快速指导15:动画 在WPF或者SilverLight中,所谓动画,就是让一个对象的属性,随着时间而发生变化。动画由时间线(timeline)控制。时间线在C#中的原型为: public abstract class Timeline : Animatable {//省略 } 它是一个抽象类。
573 0
WPF快速指导14:变换
WPF快速指导14:变换 变换,也叫变形(transform)。它定义了从一个坐标空间到另一个坐标空间的映射。变换通过矩阵来描述。变换包括旋转、伸缩、倾斜、调动,这些行为都是矩阵变换。用户还可以实现自己的矩阵。
469 0
WPF快速指导13:数据绑定之集合绑定之视图(排序、过滤、分组)
WPF快速指导13:数据绑定之集合绑定之视图(排序、过滤、分组) 本文摘要:1:为什么需要视图; 2:变更集合; 3:排序; 4:过滤筛选; 5:分组; 1:为什么需要视图      一旦 ItemsControl 绑定到数据集合,您可能希望对数据进行排序、筛选或分组。
574 0
WPF快速指导12: 线程处理模型
WPF快速指导12: 线程处理模型 本文摘要: 1:理解与UI相关的多线程操作; 2:多个窗口多个线程 3:WPF中的多线程异常 1:理解与UI相关的多线程操作     首先来说说传统Winform。
581 0
WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别
WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别 本文摘要: 1:什么是路由事件; 2:中断事件路由; 3:自定义路由事件; 4:为什么需要自定义路由事件; 5:什么是冒泡事件和预览事件(隧道事件); 1:什么是路由事件     WPF中的事件为路由事件,所谓路由事件,MSDN定义如下:     功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件。
450 0
WPF快速指导6:触发器
WPF快速指导6:触发器    本文摘要:    1:属性触发器;    2:数据触发器;    3:事件触发器;     Style、ControlTemplate 和 DataTemplate 都有触发器集合。
407 0
WPF快速指导5:验证
WPF快速指导5:验证    本文摘要:    1:WPF中的验证处理机制;    2:自定义验证规则;     3:如何显示验证错误信息    4:指定何时进行验证   1:WPF中的验证处理机制    接受用户输入的大多数应用程序都需要具有验证逻辑,以确保用户输入了需要的信息。
490 0
+关注
luminji
微软最有价值技术专家(MVP),著有《编写高质量代码:改善C#程序的157个建议》,有着十多年的软件从业资历。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载