WPF界面的本质

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

WPF界面的本质的相关文章

WPF界面设计技巧(3)—实现不规则动画按钮

原文:WPF界面设计技巧(3)-实现不规则动画按钮    发布了定义WPF按钮的教程后,有朋友问能否实现不规则形状的按钮,今天我们就来讲一下不规则按钮的制作.   不规则按钮的做法实际上和先前我们做不规则窗体的方法差不多,只是为按钮弄个不是那么方方正正的背景而已.   我们这次沿用自定义窗体时的设计图形,设计一个动态的不规则按钮,在这个示例中我们要将先前设计的整个图形作为按钮,并让外围的圆环始终围绕中心圆形旋转,在鼠标移入时,还要产生颜色变化及发光效果.   首先用 Microsoft Expr

WPF界面设计技巧(2)—自定义漂亮的按钮样式

原文:WPF界面设计技巧(2)-自定义漂亮的按钮样式  上次做了个很酷的不规则窗体,这次我们来弄点好看的按钮出来,此次将采用纯代码来设计按钮样式,不需要 Microsoft Expression Design 辅助了.   首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮:     然后给各个按钮设置不同的背景颜色:     设置好之后就是这样啦:     然后我们就开始在 App.xaml 文件中定义按钮样式了:     定义的样式

WPF界面设计技巧(1)—不规则窗体图文指南

原文:WPF界面设计技巧(1)-不规则窗体图文指南  初到园子,奉上第一篇入门级教程,请勿见笑. 以往WinForm编程中,实现不规则窗体是有一定难度的,更难的是不规则窗体的边缘抗锯齿及局部透明处理.而现在,WPF的出现使这个问题迎刃而解,使得我们可以轻松.灵活地美化用户界面. 下面就让我们来看看如何实现一个不规则窗体: 首先我们需要借助Microsoft Expression Design 2来进行图形设计.(这里使用Photoshop等传统软件也可以,但是只能利用PNG格式来实现透明,其缺点

WPF界面设计技巧(11)-认知流文档 & 小议WPF的野心

原文:WPF界面设计技巧(11)-认知流文档 & 小议WPF的野心     流文档是WPF中的一种独特的文档承载格式,它的书写和呈现方式都很像HTML,它也几乎具备了HTML的绝大多数优势,并提供了更强的编程支持及对WPF其他元素的兼容.   直接来看代码吧,需要讲解的地方比较多,我就直接注释在代码里了,看起来更方便些:     Code<Window x:Class="流文档.Window1"     xmlns="http://schemas.microso

WPF界面设计技巧(10)-样式的继承

原文:WPF界面设计技巧(10)-样式的继承     PS:现在我的MailMail完工了,进入内测阶段了,终于可以腾出手来写写教程了哈,关于MailMail的介绍及内测程序索取:http://www.cnblogs.com/SkyD/archive/2008/08/09/1264083.html  欢迎帮我捉虫,以及与我交流WPF技术   WPF的样式的继承属性极少被文章提及,以至于我在编写MailMail期间为此踌躇数日,最后终于在E文版的MS社区得到指点才得以解惑.   现将其分享出来,这

WPF界面设计技巧(4)—自定义列表项样式

原文:WPF界面设计技巧(4)-自定义列表项样式   有前面修改按钮样式的基础,我们可以尝试来定制一个即好看又好用的 ListBox ,今天先来讲"好看"部分.   打开 Microsoft Visual Studio 2008 ,建立一个WPF应用程序,调整窗体大小,在窗体内创建一个 ListBox 和一个 Button ,按下图所示布局.   在  Window1.xaml 中为窗体 Loaded 事件及按钮 Click 事件添加事件处理:       Code<Window

WPF界面设计技巧(8)—自制山寨版CheckListBox

原文:WPF界面设计技巧(8)-自制山寨版CheckListBox    近年来IT市场山寨横行啊,我们今天也来发扬一下山寨精神,搞个自制的CheckListBox出来.   喏,CheckListBox 就是下面这玩意啦:       为什么要搞它?我们是山寨耶,说搞谁就搞谁!   我也不知道为什么,WPF里没有提供 CheckListBox 控件,但凭借WPF强大的外观定制能力,我们可以轻松的创制一个自己的 CheckListBox .   CheckListBox 的基本功能其实和 Lis

WPF界面设计技巧(7)—模拟电梯升降的缓动动画

原文:WPF界面设计技巧(7)-模拟电梯升降的缓动动画     如同Flash一样,WPF的亮点之一也在于其擅于表现平滑的动画效果,但以移动动画来说,仅凭简单的起始位置.目标位置,所产生的动画仍会非常生硬,这种动画忽略了移动开始时的加速过程与移动结束时的减速过程.   WPF在关键帧动画中提供了样条内插(Spline)型的关键帧,用以控制变化的速率曲线,但这东西实在有些复杂,且不够形象化,我研究很久也没明白如何实现"缓入--缓出"的效果,随后我从一本经典牛X却鲜有人知的过时的Flash

WPF界面设计技巧(5)—自定义列表项呈现内容

原文:WPF界面设计技巧(5)-自定义列表项呈现内容    接续上次的程序,稍微改动一下原有样式,并添加一个数据模板,我们就可以达成下面这样的显示功能:     鼠标悬停于文件列表项上,会在工具提示中显示图像缩略图及文件名.文件大小信息.   选中一个列表项,该列表项会扩大,并动态显示出一个小缩略图及文件的所在路径.   代码如下:   Code<Application x:Class="自定义列表项.App"    xmlns="http://schemas.micr