首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 操作系统 >

WPF编程宝典:使用C# 2008和.NET 3.5(第2版)

2010-04-16 
基本信息·出版社:清华大学出版社 ·页码:809 页 ·出版日期:2009年08月 ·ISBN:9787302206569 ·条形码:9787302206569 ·版本:第2版 ·装帧:平装 ...
商家名称 信用等级 购买信息 订购本书
WPF编程宝典:使用C# 2008和.NET 3.5(第2版) 去商家看看
WPF编程宝典:使用C# 2008和.NET 3.5(第2版) 去商家看看

 WPF编程宝典:使用C# 2008和.NET 3.5(第2版)


基本信息·出版社:清华大学出版社
·页码:809 页
·出版日期:2009年08月
·ISBN:9787302206569
·条形码:9787302206569
·版本:第2版
·装帧:平装
·开本:64
·正文语种:中文
·外文书名:Pro WPF in C# 2008 Windows presentation foundation with .NET 3.5

内容简介 《WPF编程宝典:使用C# 2008和.NET 3.5》在亚马逊网站上深受读者好评.由微软公司的最有价值专家Matthew MacDonald倾力而作,凝聚了Matthew多年来积累的丰富实践经验,是目前最全面的一本介绍WPF编程技术的书籍。书中不仅全面介绍了常见的图形界面编程技术,而且对WPF中非常有特色的文档和打印、音频和视频、动画、3D图形开发、多线程和插件等内容也进行了比较深入的介绍。
作者简介 Matthew MacDonald,曾荣获微软最有价值专家称号,并通过了微软的MCSD认证,是一位知名作家、教育家。他在编程方面作出了许多重要贡献,撰写了多本有关.NET编程的经典书籍。除本书外,Matthew的著作还包括Pro.NET 2.0 Windows Formsand Custom Controls(Apress)、Pr0.NET 2.0 WindoWS Formsand Custom COiltrois in VB2005(Apress)和Pro WPF: WindowsPresentation Foundation in.NET3.O(Apmss)。
编辑推荐 尽管wPF的视频、动画和3D功能被大肆宣传,但是wPF仅适用于构建不需要丰富图形的企业应用程序。《WPF编程宝典:使用C# 2008和.NET 3.5(第2版)》将覆盖wPF对主要企业功能的增强,如数据绑定、打印管理以及文档显示,并展示了使用wPF创建专业企业应用程序所需要的所有技术。
WPF(Windows Presentation Foundation)通过引入一个新的模型,使用完全不同的技术改变了这一切。尽管wPF提供了熟悉的标准控件,但是它使用高性能的Directx引擎绘制所有细节。所以,WPF能够提供大量冲击视觉的新功能,《WPF编程宝典:使用C# 2008和.NET 3.5(第2版)》就包括了所有这些功能。例如,我们不用编写任何代码就可以自定义外观精美的通用控件。我们能够使用动画效果旋转、拉伸、缩放以及扭曲用户界面中的所有内容。使用windows Forms不可能实现或实现起来非常困难的任务——例如,播放媒体文件或创建具有纹理的3D形状——现在都可以轻松实现。当阅读完《WPF编程宝典:使用C# 2008和.NET 3.5(第2版)》后,您将能够掌握如何完成这些以前不可能完成的任务。多年来,.NET开发人员一直在使用Windows Forms工具包创建windows应用程序。尽管windows Forms是一项成熟且相当完善的技术,但它本质上仍是windows的一部分,而这一部分在过去10年中基本上没有发生变化。因此,即使用windows F0rms完成简单的任务也需要做大量的工作。
目录
第1章 WPF概述
1.1 理解Wind0Ws图形
1.1.1 Directx:新的图形引擎
1.1.2 硬件加速与WPF
1.2 WPF:高级API
1.2.1 分辨率无关性
1.2.2 wPF的演化
1.2.3 WindL0WS窗体将继续保留
1.2.4 Direct)(也将继续保留
1.2.5 Silvcrlight
1.3 WPF体系结构
1.4 结束语

第2章 XAML
2.1 理解XAML
2.1.1 wPF之前的图形用户界面
2.1.2 XAML变体
2.1.3 XAML编译
2.2 XAML基础
2.2.1 XAML名称空间
2.2.2 后台代码类
2.3 xAML中的属性和事件
2.3.1 简单属性与类型转换器
2.3.2 复杂属性
2.3.3 标记扩展
2.3.4 附加属性
2.3.5 嵌套元素
2.3.6 特殊字符与空白字符
2.3.7 事件
2.3.8 完整的EightBall示例程序
2.4 使用其他名称空间中的类型
2.5 加载和编译XAML
2.5.1 只使用代码
2.5.2 使用代码和未编译的XAML
2.5.3 使用代码和编译过的xAML
2.5.4 只使用XAML
2.6 结束语

第3章 AppIicatl0n类
3.1 应用程序的生命周期
3.1.1 创建Applicati0n对象
3.1.2 派生一个自定义的
Applicati0n类
3.1.3 应用程序的关闭方式
3.1.4 应用程序事件
3.2 Applicati0n类的任务
3.2.1 处理命令行参数
3.2.2 访问当前Applicati0n对象
3.2.3 在窗口之间进行交互
3.2.4 单实例应用程序
3.3 结束语

第4章 布局
4.1 理解wPF中的布局
4.1.1 wPF布局原则
4.1.2 布局过程
4.1.3 布局包容器
4.2 使用StackPanel面板进行简单布局
4.2.1 布局属性
4.2.2 对齐方式
4.2.3 外边距
4.2.4 最小尺寸、最大尺寸以及显式地设置尺寸
4.3 WlrapPanel面板和D0ckPanel面板
4.3.1 WmpPaIlel面板
4.3.2 D0cld)anel面板
4.3.3 嵌套布局包容器
4.4 Grid面板
4.4.1 调整行和列
4.4.2 跨越行和列
4.4.3 分割窗口
4.4.4 共享尺寸组
4.4.5 Unif0rmGrid面板
4.5 使用Canvas面板进行基于坐标的布局
4.5.1 Z顺序
4.5.2 lnkCanyas元素
4.6 布局示例
4.6.1 列设置
4.6.2 动态内容
4.6 13组合式用户界面
4.7 结束语

第5章 内容
5.1 理解内容控件
5.1.1 C0ntent属性
5.1.2 对齐内容
5.1 _3wPF内容原则
5.2 特殊包容器控件
5.2.1 Scr0llViewer包容器控件
5.2.2 Gr0uplB0x和TabItem:带标题的内容控件
5.2.3 EXpander控件
5.3 装饰控件
5.3.1 B0rder控件
5.3.2 Ⅵewb0x控件
5.4 结束语

第6章 依赖项属性和路由事件
6.1 理解依赖项属性
6.1.1 定义和注册依赖项属性
6.1.2 wPF使用依赖项属性的方式
6.2 理解路由事件
6.2.1 定义和注册路由事件
6.2.2 关联事件处理程序
6.2.3 事件路由
6.3 WPF事件
6.3.1 生命周期事件
6.3.2 输入事件
6.3.3 键盘输入
6-3.4 鼠标输入
6.4 结束语

第7章 经典控件
7.1 控件类
7.1.1 背景画刷和前景画刷
7.1.2 字体
7.1.3 鼠标光标
7.2 内容控件
7.2.1 标签
7.2.2 按钮
7.2.3 工具提示
7.3 文本控件
7.3.1 多行文本
7.3.2 选择文本
7.3.3 TextB0x控件的其他特征
7.3.4 Passw0r衄0x控件
7.4 列表控件
7.4.1 ListB0x控件
7.4.2 C0mb0B0x控件
7.5 基于范围的控件
7.5.1 Slider控件
7.5.2 进度条
7.6 结束语

第8章 窗口
8.1 wind0W类
8.1.1 显示窗口
8.1.2 定位窗口
8.1.3 保存和恢复窗口位置
8.2 窗口交互
8.2.1 窗口所有权
8.2.2 对话框模型
8.2.3 通用对话框
8.3 非矩形窗口
8.3.1 简单形状窗口
8.3.2 具有形状内容的透明窗口
8.3.3 移动任意形状窗口
8.3.4 改变任意形状窗口的尺寸
8.4 Vista风格的窗口
8.4.1 使用w_md0wsVista玻璃效果
8.4.2 任务对话框和文件对话框
8.5 结束语

第9章 页面和导航
9.1 理解基于页面的导航
9.2 基于页面的用户界面
9.2.1 一个具有导航功能的基于
页面的简单应用程序
9.2.2 Page类
9.2.3 超链接
9.2.4 在一个框架中宿主页面
9.2.5 在另外一个页面中宿主页面
9.2.6 在Web浏览器中宿主页面
9.3 页面历史
9.3.1 深入分析WPF中的uRI
9.3.2 导航历史
9.3.3 维护自定义的属性
9.4 导航服务
9.4.1 通过编程进行导航
9.4 12导航事件
9.4.3 管理日志
9.4.4 向日志添加自定义项
9.4.5 页函数
9.5 XAML浏览器应用程序
9.5.1 XBAP应用程序的运行要求
9.5.2 创建xBAP应用程序
9.5.3 部署xBAP应用程序
9.5.4 更新XBAP应用程序
9.5.5 XBAP应用程序的安全性
9.5.6 完全信任的xBAP应用程序
9.5.7 联合XBAP应用程序和标准的单机应用程序
9.5.8 为不同的安全级别编写代码
9.5.9 在web页面中嵌入xBAP应用程序
9.6 结束语

第10章 命令
10.1 理解命令
10.2 wPF命令模型
10.2.1 IC0mmaJld接口
10.2.2 R叫tedC0mmand类
10.2.3 R0uteduIc0mmand类
10.2.4 命令库
10.3 执行命令
10.3.1 命令源
l0.3.2 命令绑定
10.3.3 使用多命令源
l0.3.4 微调命令文本
10.3.5 直接调用命令
10.3.6 禁用命令
l0.3.7 具有内置命令的控件
l0.4 高级命令
10.4.1 自定义命令
10.4.2 在不同的位置使用相同的命令
l0.4.3 使用命令参数
10.4.4 跟踪和翻转命令
10.5 结束语

第11章 资源
11.1 程序集资源
11.1.1 添加资源
11.1.2 检索资源
11.1.3 packURJ
11.1.4 内容文件
11.2 本地化
11.2.1 构建本地化用户界面
11.2.2 使应用程序为本地化做好准备
11.2.3 翻译过程
11.3 对象资源
1l.3.1 资源集合
11.3.2 资源层次
11.3.3 静态资源和动态资源
11.3.4 非共享资源
ll.3.5 通过代码访问资源
11.3.6 应用程序资源
11.3.7 系统资源
11.3.8 使用资源字典组织资源
11.3.9 在程序集之间共享资源
11.4 结束语

第12章 样式
12.1 样式基础
12.1.1 创建样式对象
12.1.2 设置属性
12.1.3 关联事件处理程序
12.1.4 多层样式
12.1.5 通过类型自动应用样式
12.2 触发器
12.2.1 简单触发器
12.2.2 事件触发器
12.3 结束语

第13章 形状、变换和画刷
13.1 理解形状
13.1.1 ShaDe类
13.1.2 矩形和椭圆
13.1.3 改变形状的尺寸和放置形状
13.1.4 直线
13.1.5 折线
13.1.6 多边形
13.1.7 直线线帽和直线交点
13.1.8 点划线
13.1.9 像素对齐
13.2 变换
13.2.1 变换形状
13.2.2 变换元素
13.3 更好的画刷
13.3.1 LineaGradientBmsh画刷
13.3.2 RadialGra0dientBmsh画刷
13.3.3 ImageBnlsh画刷
13.3.4 平铺的ImageBmsh画刷
13.3.5 visualBnlsh画刷
13.3.6 透明掩码
13.4 位图效果
13.4.1 模糊效果
13.4.2 斜面边缘效果
13.4.3 浮雕边缘效果
13.4.4 光环和阴影
13.5 结束语

第14章 图形、图画和可视化对象
14.1 路径和图形
14.1.1 直线、矩形和椭圆图形
14.1.2 使用Ge0metruGr0up组合形状
14.1.3 使用C0mbinedGe0metry融合图形
14.1.4 使用PathGe0metry绘制曲线和直线
14.1.5 微语言图形
14.1.6 使用图形进行剪裁
14.2 图画
14.2.1 显示图画
14.2.2 导出插图
14.3 可视化对象
14.3.1 绘制可视化对象
14.3.2 在元素中包装可视化对象
14.3.3 命中测试
14.3.4 复杂的命中测试
14.4 结束语

第15章 控件模板
15.1 理解逻辑树和可视化树
15.2 理解模板
15.2.1 修饰类
15.2.2 剖析控件
15.3 创建控件模板
15.3.1 简单按钮模板
15.3.2 模板绑定
15.3.3 模板触发器
15.4 组织模板资源
……
第16章 数据绑定
第17章 数据模板、数据视图和数据提供者
第18章 列表、树、工具条和菜单
第19章 文档
第20章 打印
第21章 动画
第22章 声音和视频
第23章 3D绘图
第24章 自定义元素
第25章 与Windows窗体的互操作
第26章 多线程和插件
……
序言 当.NET第一次出现时,它引入了一些重要的新技术。包括编写Web应用程序的全新方法(ASP.NET)、连接数据库的全新方法(ADO.NET)、新的类型安全的语言(C#和VB.NET),以及托管的运行时(CLR)。在这些新技术中最重要的是Windows窗体,它是用于构建Windows应用程序的一套类库。
尽管Windows窗体是一个成熟且非常完善的工具包,但它使用的是在过去十年中本质上并无变化的Windows技术。最重要的是,Windows窗体依靠WindowsAPI来创建标准用户界面元素的可视化外观,如按钮、文本框、复选框等。所以,这些要素在本质上是不可定制的。
例如,如果希望创建一个时髦的光晕按钮,就需要创建一个自定义控件,并使用低级的绘图模型为按钮各种不同的状态绘制各个方面的细节。更糟糕的是,普通的窗口被切割成不同的区域,每个控件完全拥有自己的区域。所以,没有比较好的绘制方法可以将一个控件的内容(如按钮背后的发光效果)辐射到其他控件。更不要指望实现动画效果,如旋转的文本、闪烁的按钮、收缩的窗口,以及生动的预览,因为对于这些效果必需手工绘制每个细节。
Windows呈现基础(Windows Presentation Foundation,wPF)通过一个使用完全不同技术的新模型改变了所有的一切。尽管WPF也提供了熟悉的标准控件,但是它自己负责绘制每个文本、边框和背景填充。所以,WPF能够提供更强大的功能,可以改变渲染屏幕上所有内容的方式。使用这些特性,可以重新样式化通用控件,如按钮,并且通常不需要编写任何代码。同样,可以使用变换对象旋转、拉伸、缩放以及扭曲用户界面中的所有内容,甚至可以使用WPF动画系统对用户界面中的内容进行变换。并且因为WPF引擎将在窗口上渲染的内容作为单独操作的一部分,所以它能够处理任意多层相互重叠的内容,即使这些控件具有不规则的形状并且是半透明的。
在WPF这些新特性的背后是基于DirectX的新架构,DirectX是一套硬件加速的图形API,通常用于开发最前沿的计算机游戏。这意味着可以使用丰富的图形效果,而不会造成性能损失,而使用Windows窗体实现这类效果会严重影响程序运行的性能。实际上,甚至可以使用更高级的特性,例如,对视频文件和3D内容的支持。使用这些特性(以及优秀的设计工具),可以创建出非常绚丽的用户界面和可视化效果,而使用Windows窗体技术是无法实现这些效果的。
尽管通常会更加关注WPF中最前沿的视频、动画以及3D特性,但是关注使用WPF的标准控件和简单的可视化外观,构建常规Windows应用程序也是很重要的。实际上,使用WPF中的通用控件和使用Windows窗体中的通用控件同样容易。更好的是,WPF增强了商业开发人员所需要的特性,包括经过很大改进的数据绑定模型、一套用于打印以及管理打印队列的新类,以及用于显示大量格式化文本的文档特性。

当.NET第一次出现时,它引入了一些重要的新技术。包括编写Web应用程序的全新方法(ASP.NET)、连接数据库的全新方法(ADO.NET)、新的类型安全的语言(C#和VB.NET),以及托管的运行时(CLR)。在这些新技术中最重要的是Windows窗体,它是用于构建Windows应用程序的一套类库。
尽管Windows窗体是一个成熟且非常完善的工具包,但它使用的是在过去十年中本质上并无变化的Windows技术。最重要的是,Windows窗体依靠WindowsAPI来创建标准用户界面元素的可视化外观,如按钮、文本框、复选框等。所以,这些要素在本质上是不可定制的。
例如,如果希望创建一个时髦的光晕按钮,就需要创建一个自定义控件,并使用低级的绘图模型为按钮各种不同的状态绘制各个方面的细节。更糟糕的是,普通的窗口被切割成不同的区域,每个控件完全拥有自己的区域。所以,没有比较好的绘制方法可以将一个控件的内容(如按钮背后的发光效果)辐射到其他控件。更不要指望实现动画效果,如旋转的文本、闪烁的按钮、收缩的窗口,以及生动的预览,因为对于这些效果必需手工绘制每个细节。
Windows呈现基础(Windows Presentation Foundation,wPF)通过一个使用完全不同技术的新模型改变了所有的一切。尽管WPF也提供了熟悉的标准控件,但是它自己负责绘制每个文本、边框和背景填充。所以,WPF能够提供更强大的功能,可以改变渲染屏幕上所有内容的方式。使用这些特性,可以重新样式化通用控件,如按钮,并且通常不需要编写任何代码。同样,可以使用变换对象旋转、拉伸、缩放以及扭曲用户界面中的所有内容,甚至可以使用WPF动画系统对用户界面中的内容进行变换。并且因为WPF引擎将在窗口上渲染的内容作为单独操作的一部分,所以它能够处理任意多层相互重叠的内容,即使这些控件具有不规则的形状并且是半透明的。
在WPF这些新特性的背后是基于DirectX的新架构,DirectX是一套硬件加速的图形API,通常用于开发最前沿的计算机游戏。这意味着可以使用丰富的图形效果,而不会造成性能损失,而使用Windows窗体实现这类效果会严重影响程序运行的性能。实际上,甚至可以使用更高级的特性,例如,对视频文件和3D内容的支持。使用这些特性(以及优秀的设计工具),可以创建出非常绚丽的用户界面和可视化效果,而使用Windows窗体技术是无法实现这些效果的。
尽管通常会更加关注WPF中最前沿的视频、动画以及3D特性,但是关注使用WPF的标准控件和简单的可视化外观,构建常规Windows应用程序也是很重要的。实际上,使用WPF中的通用控件和使用Windows窗体中的通用控件同样容易。更好的是,WPF增强了商业开发人员所需要的特性,包括经过很大改进的数据绑定模型、一套用于打印以及管理打印队列的新类,以及用于显示大量格式化文本的文档特性。
文摘 插图:


第1章 WPF概述
Windows呈现基础(Windows Presentation Foundation,WPF)是一个用于Windows平台的全新的图形显示系统。WPF是针对.NET而设计的,它受现代显示技术,如HTML和Flash,以及硬件加速技术的影响。WPF也完全不同于自从Windows 95以来一直使用的Windows用户界面。
本章将介绍WPF的体系结构,首先会介绍WPF的工作原理,以及它如何为开发下一代Windows应用程序提供支持。
1.1 理解Windows图形
15年以来,Windows开发人员一直在使用本质上相同的显示技术,如果您不了解这一实际情况,那么就很难理解WPF的变化有多么大。标准的Windows应用程序依赖于Windows操作系统的如下两个部分来创建用户界面,这两个部分已经使用了很长时间:
·User32该部分为许多元素提供了类似的窗口外观,如窗口、按钮、文本框等。
·GDl/GDI+该部分为渲染简单形状、文本以及图像提供绘图支持,但是非常复杂(而且通常性能较差)。
在过去的几年里,这两种技术一直在改进,并且开发人员使用的与之交互的APl也已经发生了很大的变化。但不管是使用.NET和Windows窗体,还是使用过去的Visual Basic 6或基于C++代码的MFC,在底层都是使用Windows操作系统的相同部分来工作的。新的框架工具为使用User32和GDl/GDI+进行交互提供了更好的封装。这些框架工具提高了开发效率,降低了复杂性,并且提供了更多的特性,使开发人员不必再自己编写底层代码,但是这些框架工具不可能避免系统组件在设计上的基本限制,这些限制已经存在了十多年。
热点排行