WPF缺省的数据类型为object,各种数据都可以被绑定到UI框架的控件上,支持任意类型的数据嵌套在XAML的内部控件上。控件模板定义控件外观,数据模板定义特定的数据如何显示,content presenter将定义的数据显示在控件外观上显示; 数据模板描述了数据显示的外观,通过数据绑定将这些外观和数据关联起来;WPF的数据绑定是一个强大的功能,它允许单项和双向的绑定,当对象更改时UI会自动刷新,当UI操作后数据也可以自动更改。布局系统将确定前面生产的所有UI控件的大小和位置,在WPF中panel以及其继承类负责提供布局功能。布局是一种递归的分两个步骤进行的过程,第一步是检测,第二步是排列。检测:面板询问其子元素到底需要多少空间,这里假设有足够的控件。面板会重载FrameworkElement的MeasureOverride方法来实现这一步。排列:在检测步骤完成后,就该排列元素了。面板会告诉子元素它们将放在哪里,它们有多少空间可以用。面板会重载FramworkElement的ArrangeOverride方法来实现这一步骤。
样式是一种简单的机制,通过它可以把属性值和用户界面元素分类开来,有点类似CSS与HTML的关系;数据经过控件模板、数据模板以及样式和布局,再加上数据绑定就可以展现数据了。把数据显示出来只是做了一半工作,还有一半就是提供用户方式与UI进行交互。WPF控件支持鼠标、键盘和写字板等输入设备来与UI进行交互,还可以通过外部和内部时间进行操作,经过触发后可以通过事件处理或者command机制来进行Action。
时间: 2024-12-23 03:39:16