摘要: 前一个Post当中介绍了WPF如何处理事件的传递过程。如何定义传递事件,并且对事件进行了分类。现在,我们看看WPF到底是如何处理Bubbling和Tunneling事件的。最后介绍了Attached事件。
阅读全文
摘要: WPF在.NET简单事件通知之上添加了很多基础结构。传递事件的设计使得事件可以与元素树一起很好的工作。事件发生后,可以在视觉树和逻辑树自动地进行上下传递,我们不需要添加任何额外的代码。传递事件使得我们不需要过多关注于视觉树,这样封装对于我们理解WPF的元素合成非常重要。比如,我们点击一个按钮的事件,在点击的时候我们实际上点击的是一个ButtonChrome或者TextBlock,也就是说我们点击的是Button的内容元素。正是因为事件可以沿视觉树传递,Button才发现这个事件,并且可以处理。因此,我们可以给Button的Content当中添加任意的元素,而不会对事件有任何的影响。如果没有这样的事件传递,我们点击Button内的元素时,必须手动编写代码触发Button点击事件。
阅读全文
摘要: 在前一个Post当中,我从资源编译行为的角度讨论了WPF中的资源。但是,不管是Resource还是Content都是在编译时声明资源。如果我们打破这个限制,不希望指定完全确认的资源地址。WPF提供了一种类似IE地址定位的抽象,它根据应用程序部署的位置决议。
阅读全文
摘要: 继续相同的话题:WPF中的资源。这次我将尝试从另外一个角度来分析WPF中的资源:资源编译行为,以及如何根据应用程序的需要选择适当的类型。
阅读全文
摘要: 在本系列的之十三中简单介绍了WPF中资源的资源。但是,没有给出任何具体的实例,在这个Post中将给出一个动态资源的例子,也算是响应daxian110的请求。并适当的扩展在前一个Post当中没有涉及的知识。
阅读全文
摘要: 在上一个Post当中,我叙述了WPF中的数据绑定相关的一堆理论知识。现在,我们将对其中的某些方面通过实例做进一步的分析。在介绍WPF数据绑定源的种类时,第一种就是任意的CLR对象。这里需要注意的是WPF虽然支持任意的CLR对象,但是一个普通的CLR对象类却不行。我们还需要在CLR对象类上实现一种变化通知机制。WPF把这种通知机制封装在了INotifyPropertyChanged接口当中。我们的CLR对象类只要实现了这个接口,它就具有了通知客户的能力,通常是在属性改变后通知绑定的目标。
阅读全文
摘要: 数据绑定,这是WPF提供的一个真正的优点。除了可以用在传统的绑定环境中,数据绑定已经被扩展应用到控件属性上。学习应用数据绑定,也能真正的体现XAML的好处。到底什么是数据绑定呢?也许你从字面上已经理解的很不错了。通过数据绑定,我们在应用程序UI和程序逻辑之间建立了一种联系。正常建立绑定后,在数据的值发生改变后,绑定到数据的元素将自动更新、体现出数据的变化。
阅读全文
摘要: 资源是保存在可执行文件中的一种不可执行数据。通过资源我们可以包含图像、字符串等等几乎是任意类型的数据。如此重要的功能,.NET、WPF当然都支持,而且WPF的资源有所不同。今天,我将简单说明如何在WPF中使用资源。
阅读全文
摘要: 在前面,我用三篇短小的Post对Dependency属性进行了说明。现在,我们再继续看一种特殊的Dependency属性:Attached属性。Attached属性可以非常高效地Attach到其他的对象中。
阅读全文
摘要: 在前一个Post中,重点说明了Dependency属性的变化通知和属性值的继承两个方面,下面我们再看看Dependency属性所支持的多个提供对象。
阅读全文
摘要: 在前一个Post中,曾提到将要重点研究的三个方面:变化通知;属性值的继承;支持多个提供对象。下面,我将分别就这三个内容进行简单地说明。在此Post中说明变化通知和属性值继承。支持多个提供对象将在下一篇Post讲述。
阅读全文
摘要: WPF引入了一种新的属性:Dependency属性。Dependency属性的应用贯串在整个WPF当中。Dependency属性根据多个提供对象来决定它的值。并且是及时更新的。提供对象可以是动画,不断地改变它的值。也可以是父元素,它的属性值被继承到子元素。毫无疑问,Dependency属性最大的特点就是内建的变化通知功能。提供Dependency属性功能主要是为了直接从声明标记提供丰富的功能。WPF声明的友好设计的关键是大量的使用属性。如果没有Dependency属性,我们将不得不编写大量的代码。关于WPF的Dependency属性,我们将重点研究如下三个方面:
1、变化通知功能:变属性的值被改变后,通知界面进行更新。
2、属性值的继承功能:子元素将继承父元素中对应属性名的值。
3、支持多个提供对象:我们可以通过多种方式来设置Dependency属性的值。
阅读全文
摘要: 这部分的内容来自于即将出版的新书《WPF Unleashed》的第三章样章。简单说明WPF中逻辑树和视觉树概念的理解以及区别,如何遍历视觉树等。
阅读全文
摘要: 前一个Post当中,我们简单介绍了XAML的向后兼容性,以及利用标记兼容性实现注释的功能。现在,我们接着讨论XAML的向前兼容性问题。
阅读全文
摘要: 为了能更好的实现产品与Vista操作系统的移植、兼容、扩展等等。最近(或许一直)一段时间开始学习WPF的一些相关知识。根据目前的安排,至少还有1个月的时间。正好,可以每天记录一些问题或者所学的知识。也希望自己能坚持写下去。我们都相信时间的力量!大宝能天天见,WPF也可以天天写!
阅读全文