没有合适的资源?快使用搜索试试~ 我知道了~
首页WPF中文教程 提供WPF基础入门 XAML语法 WPF控件开发 WPF数据绑定 WPF图形和多媒体开发
WPF中文教程 提供WPF基础入门 XAML语法 WPF控件开发 WPF数据绑定 WPF图形和多媒体开发
4星 · 超过85%的资源 需积分: 50 119 下载量 35 浏览量
更新于2023-03-03
评论 1
收藏 13.06MB DOC 举报
word文档 提供目录 WPF统一了Windows创建、显示、操作文档、媒体和用户界面 (UI) 的方式,使开发人员和设计人员可以创建更好的视觉效果和不同的用户体验,带给用户震撼视觉体验的Windows客户端应用程序。使用WPF,您可以创建广泛的独立应用程序和浏览器承载的应用程序。 从WPF的体系结构开始,向您全面介绍WPF开发所需的基础知识、XAML语法、控件开发和数据通信,最后向您展示WPF在图形和多媒体方面的强大威力。
资源详情
资源评论
资源推荐
微软 WPF 应用
开发教程
目录
WPF 基础入门...................................................................................................................................... ....3
1. WPF 基础之体系结构......................................................................................................................3
2. WPF 基础之 XAML..........................................................................................................................8
3. WPF 基础之基元素........................................................................................................................20
4. WPF 基础之属性系统....................................................................................................................23
5. WPF 基础之路由事件....................................................................................................................29
6. WPF 基础之布局系统....................................................................................................................41
7. WPF 基础之样式设置和模板化....................................................................................................45
8. 详谈 WPF 开发中的数据虚拟化....................................................................................................58
XAML 语法.............................................................................................................................................69
1. XAML 语法术语.............................................................................................................................69
2. 代码隐藏和 XAML.........................................................................................................................75
3. XAML 和自定义类.........................................................................................................................76
4. 标记扩展和 XAML.........................................................................................................................80
5. XAML 命名空间和命名空间映射.................................................................................................83
6. WPF 名称范围................................................................................................................................84
WPF 控件开发....................................................................................................................................... .87
1. WPF 控件开发之控件概述............................................................................................................87
2. 使用 XAML 创建按钮....................................................................................................................95
3. WPF 控件库之 BUTTON................................................................................................................105
4. WPF 控件库之 MENU....................................................................................................................106
5. WPF 控件库之 LABLE...................................................................................................................110
6. WPF 控件库之 TOOLBAR..............................................................................................................112
7. WPF 控件开发之自定义控件.......................................................................................................114
8. WPF 控件开发之装饰器..............................................................................................................130
WPF 数据绑定.................................................................................................................................. ....133
1. 数据绑定概述...............................................................................................................................133
2. WPF 数据绑定之绑定源..............................................................................................................153
3. WPF 数据绑定之数据模板..........................................................................................................155
4. WPF 数据绑定之绑定声明..........................................................................................................170
5. 实例一:绑定到 ADO.NET 数据源............................................................................................173
6. 实例二:绑定到 LINQ 查询的结果............................................................................................174
WPF 图形和多媒体开发.................................................................................................................. ....175
第 1 页 共 241 页
微软 WPF 应用
1. WPF 图形动画和媒体概述..........................................................................................................175
2. WPF 的图形呈现..........................................................................................................................180
3. WPF 的图像处理..........................................................................................................................193
4. WPF 的三维图形应用..................................................................................................................207
5. WPF 的三维变换应用..................................................................................................................217
6. WPF 的动画开发..........................................................................................................................226
7. WPF 的多媒体开发......................................................................................................................238
第 2 页 共 241 页
微软 WPF 应用
WPF 基础入门
1. WPF 基础之体系结构
本主题提供 类层次结构的指导教程,
涵盖了 的大部分主要子系统,并描述它们是如何交互的。本主题还详细介绍了
架构师所做的一些选择。
System.Object
主要编程模型是通过托管代码公开的。在 的早期设计阶段,曾有过大量关
于如何界定系统的托管组件和非托管组件的争论。提供一系列的功能,可以令开发效
率更高并且更加可靠(包括内存管理、错误处理和通用类型系统等),但这是需要付出代
价的。
下图说明了 的主要组件。关系图的红色部分
(、和 )是 的主要代码部
分。在这些组件中,只有一个是非托管组件 – 。是以非托管代码编写的,
目的是实现与 的紧密集成。中的所有显示是通过 引擎完成的,可
实现高效的硬件和软件呈现。还要求对内存和执行进行精确控制。中的组合
引擎受性能影响关系大,需要放弃 的许多优点来提高性能。
本主题的后面部分将讨论 WPF 的托管和非托管部分之间的通信。下面介绍托管编程模型
的其余部分。
System.Threading.DispatcherObject
第 3 页 共 241 页
微软 WPF 应用
中的大多数对象是从 派生的,这提供了用于处理并发和线
程的基本构造。基于调度程序实现的消息系统。其工作方式与常见的 !"消息泵
非常类似;事实上,调度程序使用 #!"消息执行跨线程调用。
要讨论 中的并发,首先必须真正理解两个核心概念 – 调度程序和线程关联。
在 的设计阶段,目标趋向于单一线程的执行,但这不是一种与线程“关联的”模型。
当一个组件使用执行线程的标识来存储某种类型的状态时,将发生线程关联。最常见的形
式是使用线程本地存储 $%来存储状态。线程关联要求执行的每个逻辑线程仅由操作系
统中的一个物理线程所拥有,这将占用大量内存。最后,的线程处理模型保持与具有
线程关联的单一线程执行的现有 #!"线程处理模型同步。主要原因是互操作性 – 类似
于 &"'(的系统、剪贴板和 )&*均需要单一线程关联 %$+执行。
假设您具有带有 %$+线程的对象,则需要一种方式来在线程之间通信,并验证您是否
位于正确的线程上。调度程序的作用就在于此。调度程序是一个基本的消息调度系统,具
有多个按优先级排列的队列。消息的示例包括原始输入通知(鼠标移动)、框架函数(布
局)或用户命令(执行此方法)。通过从 派生,您可以创建一个具有
%$+行为的 对象,并在创建时获得一个指向调度程序的指针。
System.Windows.DependencyObject
生成 时使用的主要体系结构原理之一是首选属性而不是方法或事件。属性是声明性
的,使您更方便地指定意图而不是操作。它还支持模型驱动或数据驱动的系统,以显示用
户界面内容。这种理念的预期效果是创建您可以绑定到的更多属性,从而更好地控制应用
程序的行为。
为了从由属性驱动的系统获得更多,需要一个比 提供的内容更丰富的属性系统。
此丰富性的一个简单示例就是更改通知。为了实现双向绑定,您需要绑定的双方支持更改
通知。为了使行为与属性值相关联,您需要在属性值更改时得到通知。,-'.&$
具有一个 ).-//0接口,使对象可以发布更改通知(不过,
这是可选的)。
提供一个丰富的属性系统,该属性系统是从 / 类型派生的。
该属性系统实际是一个“依赖”属性系统,因为它会跟踪属性表达式之间的依赖关系,并在
依赖关系更改时自动重新验证属性值。例如,如果您具有一个会继承的属性(如
%1),当继承该值的元素的父级发生属性更改时,会自动更新系统。
属性系统的基础是属性表达式的概念。在 的第一版中,属性表达式系统是
关闭的,表达式都是作为框架的一部分提供的。表达式致使属性系统不具有硬编码的数据
绑定、样式调整或继承,而是由框架内后面的层来提供这些功能。
属性系统还提供属性值的稀疏存储。因为对象可以有数十个(如果达不到上百个)属
性,并且大部分值处于其默认状态(被继承、由样式设置等),所以并非对象的每个实例
都需要具有在该对象上定义的每个属性的完全权重。
属性系统的最后一个新功能是附加属性的概念。元素是基于组合和组件重用的原
则生成的。某些包含元素(如 2布局元素)通常需要子元素上的其他数据才能控制其
行为(如行3列信息)。任何对象都可以为任何其他对象提供属性定义,而不是要将所有这
些属性与每个元素相关联。这与 45%中的“*6功能相似。
第 4 页 共 241 页
微软 WPF 应用
System.Windows.Media.Visual
定义一个系统后,下一步是将像素绘制到屏幕上。7类用于生成可视化对象的树,
每个对象可以选择性地包含绘制指令以及有关如何呈现这些指令(剪辑、变换等)的元数
据。7设计为极其轻量且灵活,所以大部分功能未进行 +)公开,并且极为依赖受保
护的回调函数。
7实际上是到 组合系统的入口点。7是以下两个子系统之间的连接点:
托管 +)和非托管 。
通过遍历由 管理的非托管数据结构来显示数据。这些结构(称为组合
节点)代表层次结构显示树,其中每个节点都有呈现指令。只能通过消息传递协议来访问
此树(下图右侧所示)。
当对 编程时,您将创建 7元素及派生的类型,它们通过此消息传递协议在
内部与此组合树进行通信。中的每个 7可以不创建组合节点,也可以创建一个
或多个组合节点。
请注意一个非常重要的体系结构细节 – 可视对象和绘制指令的整个树都要进行缓存。
在图形方面,使用一个保留的呈现系统。这可以使系统以一个高刷新率重绘系统,并
且不会发生组合系统阻止对用户代码的回调。这有助于防止出现应用程序无响应的情况。
关系图中不十分引人注意的另一个重要细节是系统实际上如何执行组合。
在 #!"和 2)中,系统是在一个即时模式剪辑系统上工作。当需要呈现一个组
件时,系统会建立一个剪辑边界,不允许组件接触该边界之外的像素,然后会要求此组件
在该框中绘制像素。此系统在内存受限的系统上工作良好,因为当某些内容更改时,只需
要处理受影响的组件即可 – 不会有两个组件对一个像素的颜色更改起作用。
使用“绘画器的算法”绘制模型。这意味着并不是剪辑每个组件,而是要求从显示
内容的背面至正面来呈现每个组件。这允许每个组件在先前的组件的显示内容上绘制。此
模型的优点是您可以生成部分透明的复杂形状。与现今的现代图形硬件比较,此模型相对
要快(创建 #!"32)的情况除外)。
如上面所述,的一个核心原理是移动到一个更具声明性且“以属性为核心”的编程
模型。在可视化系统中,这会表现为需要关注的两种情况。
首先,如果您考虑保留的模式图形系统,则实际上是从命令性 3
类型模型移动到面向数据的模型 3。通过这一向数据驱动的呈现移
动,可以在使用属性表达的绘制指令上进行复杂的操作。从 0派生的类型实际上
是用于呈现的对象模型。
第 5 页 共 241 页
剩余63页未读,继续阅读
faiess
- 粉丝: 9
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论11