WPF 编程宝典:使用 C# 2012 和 .NET 4.5

WPF 编程宝典
8.7
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Matthew Macdonald)
出版社: 清华大学出版社
2013-08
版次: 4
ISBN: 9787302327738
定价: 128.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 932页
字数: 1600千字
正文语种: 简体中文
原版书名: Pro WPF 4.5 in C#
  •   WPF提供了为Windows操作系统构建高品质用户界面的开发框架,融合了源于多个渠道的丰富内容,为您充分利用Windows计算机的处理能力提供了前所未有的机会。
      《.NET开发经典名著·WPF编程宝典:使用C#2012和.NET4.5(第4版)》全面讲解WPF的实际工作原理,是一本WPF专业著作。在紧贴实用示例这一思想的引导下,列出实用提示,引导以专业的方式使用WPF。《.NET开发经典名著·WPF编程宝典:使用C#2012和.NET4.5(第4版)》开篇介绍WPF基本概念以便为您奠定坚实的基础,并将现有C#技能作为引用框架,然后讨论高级概念,结合实际演示它们的用法,并重点强调了可由此节省的时间和人力成本。
      主要内容:
      ·理解WPF编程的基础知识:从XAML到控件,乃至数据流;
      ·开发实用的应用程序,带您实际了解导航、本地化和开发;
      ·探讨WPF提供的高级用户界面控件;
      ·分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术;
      ·使用图形和多媒体来增强应用程序。   麦克唐纳(MatthewMacDonald),是一位作家、教育家,也是微软最有价值专家。他撰写了十多本有关.NET编程的书籍,包括ProSilverlight3inC#(2009年Apress出版)和ProASP.NET3.5inC#(2007年Apress出版)以及本书的前一版本。目前他与妻子以及两个女儿居住在多伦多。 第Ⅰ部分基础知识
    第1章WPF概述
    1.1Windows图形演化
    1.1.1DirectX:新的图形引擎
    1.1.2硬件加速与WPF
    1.2WPF:高级API
    1.3分辨率无关性
    1.3.1WPF单位
    1.3.2系统DPI
    1.3.3位图和矢量图形
    1.4WPF体系结构
    1.5WPF4.5
    1.5.1WPF工具包
    1.5.2VisualStudio2012
    1.6小结
    第2章XAML
    2.1理解XAML
    2.1.1WPF之前的图形用户界面
    2.1.2XAML变体
    2.1.3XAML编译
    2.2XAML基础
    2.2.1XAML名称空间
    2.2.2代码隐藏类
    2.3XAML中的属性和事件
    2.3.1简单属性与类型转换器
    2.3.2复杂属性
    2.3.3标记扩展
    2.3.4附加属性
    2.3.5嵌套元素
    2.3.6特殊字符与空白
    2.3.7事件
    2.3.8完整的EightBallAnswer示例
    2.4使用其他名称空间中的类型
    2.5加载和编译XAML
    2.5.1只使用代码
    2.5.2使用代码和未经编译的XAML
    2.5.3使用代码和编译过的XAML
    2.5.4只使用XAML
    2.6小结
    第3章布局
    3.1理解WPF中的布局
    3.1.1WPF布局原则
    3.1.2布局过程
    3.1.3布局容器
    3.2使用StackPanel面板进行简单布局
    3.2.1布局属性
    3.2.2对齐方式
    3.2.3边距
    3.2.4最小尺寸、最大尺寸以及显式地设置尺寸
    3.2.5Border控件
    3.3WrapPanel和DockPanel面板
    3.3.1WrapPanel面板
    3.3.2DockPanel面板
    3.3.3嵌套布局容器
    3.4Grid面板
    3.4.1调整行和列
    3.4.2布局舍入
    3.4.3跨越行和列
    3.4.4分割窗口
    3.4.5共享尺寸组
    3.4.6UniformGrid面板
    3.5使用Canvas面板进行基于坐标的布局
    3.5.1Z顺序
    3.5.2lnkCanvas元素
    3.6布局示例
    3.6.1列设置
    3.6.2动态内容
    3.6.3组合式用户界面
    3.7小结
    第4章依赖项属性
    4.1理解依赖项属性
    4.1.1定义依赖项属性
    4.1.2注册依赖项属性
    4.1.3添加属性包装器
    4.1.4WPF使用依赖项属性的方式
    4.1.5共享的依赖项属性
    4.1.6附加的依赖项属性
    4.2属性验证
    4.2.1验证回调
    4.2.2强制回调
    4.3小结
    第5章路由事件
    5.1理解路由事件
    5.1.1定义、注册和封装路由事件
    5.1.2共享路由事件
    5.1.3引发路由事件
    5.1.4处理路由事件
    5.2事件路由
    5.2.1RoutedEventArgs类
    5.2.2冒泡路由事件
    5.2.3处理挂起的事件
    5.2.4附加事件
    5.2.5隧道路由事件
    5.3WPF事件
    5.3.1生命周期事件
    5.3.2输入事件
    5.4键盘输入
    5.4.1处理按键事件
    5.4.2焦点
    5.4.3获取键盘状态
    5.5鼠标输入
    5.5.1鼠标单击
    5.5.2捕获鼠标
    5.5.3鼠标拖放
    5.6多点触控输入
    5.6.1多点触控的输入层次
    5.6.2原始触控
    5.6.3操作
    5.6.4惯性
    5.7小结

    第Ⅱ部分进一步研究WPF
    第6章控件
    6.1控件类
    6.1.1背景画刷和前景画刷
    6.1.2字体
    6.1.3鼠标光标
    6.2内容控件
    6.2.1Content属性
    6.2.2对齐内容
    6.2.3WPF内容原则
    6.2.4标签
    6.2.5按钮
    6.2.6工具提示
    6.3特殊容器
    6.3.1ScrollViewer
    6.3.2GroupBox
    6.3.3TabItem
    6.3.4Expander
    6.4文本控件
    6.4.1多行文本
    6.4.2选择文本
    6.4.3拼写检查
    6.4.4PasswordBox
    6.5列表控件
    6.5.1ListBox
    6.5.2ComboBox
    6.6基于范围的控件
    6.6.1Slider
    6.6.2ProgressBar
    6.7日期控件
    6.8小结
    第7章Application类
    7.1应用程序的生命周期
    7.1.1创建Application对象
    7.1.2派生自定义的Application类
    7.1.3应用程序的关闭方式
    7.1.4应用程序事件
    7.2Application类的任务
    7.2.1显示初始界面
    7.2.2处理命令行参数
    7.2.3访问当前Application对象
    7.2.4在窗口之间进行交互
    7.2.5单实例应用程序
    7.3程序集资源
    7.3.1添加资源
    7.3.2检索资源
    7.3.3packURI
    7.3.4内容文件
    7.4本地化
    7.4.1构建能够本地化的用户界面
    7.4.2使应用程序为本地化做好准备
    7.4.3管理翻译过程
    7.5小结
    第8章元素绑定
    8.1将元素绑定到一起
    8.1.1绑定表达式
    8.1.2绑定错误
    8.1.3绑定模式
    8.1.4使用代码创建绑定
    8.1.5使用代码检索绑定
    8.1.6多绑定
    8.1.7绑定更新
    8.1.8绑定延迟
    8.2绑定到非元素对象
    8.2.1Source属性
    8.2.2RelativeSource属性
    8.2.3DataContext属性
    8.3小结
    第9章命令
    9.1理解命令
    9.2WPF命令模型
    9.2.1ICommand接口
    9.2.2RoutedCommand类
    9.2.3RoutedUICommand类
    9.2.4命令库
    9.3执行命令
    9.3.1命令源
    9.3.2命令绑定
    9.3.3使用多命令源
    9.3.4微调命令文本
    9.3.5直接调用命令
    9.3.6禁用命令
    9.3.7具有内置命令的控件
    9.4高级命令
    9.4.1自定义命令
    9.4.2在不同位置使用相同的命令
    9.4.3使用命令参数
    9.4.4跟踪和翻转命令
    9.5小结
    第10章资源
    10.1资源基础
    10.1.1资源集合
    10.1.2资源的层次
    10.1.3静态资源和动态资源
    10.1.4非共享资源
    10.1.5通过代码访问资源
    10.1.6应用程序资源
    10.1.7系统资源
    10.2资源字典
    10.2.1创建资源字典
    10.2.2使用资源字典
    10.2.3在程序集之间共享资源
    10.3小结
    第11章样式和行为
    11.1样式基础
    11.1.1创建样式对象
    11.1.2设置属性
    11.1.3关联事件处理程序
    11.1.4多层样式
    11.1.5通过类型自动应用样式
    11.2触发器
    11.2.1简单触发器
    11.2.2事件触发器
    11.3行为
    11.3.1获取行为支持
    11.3.2理解行为模型
    11.3.3创建行为
    11.3.4使用行为
    11.3.5Blend中的设计时行为支持
    11.4小结

    第Ⅲ部分图画和动画
    第12章形状、画刷和变换
    12.1理解形状
    12.1.1Shape类
    12.1.2矩形和椭圆
    12.1.3改变形状的尺寸和放置形状
    12.1.4使用Viewbox控件缩放形状
    12.1.5直线
    12.1.6折线
    12.1.7多边形
    12.1.8直线线帽和直线交点
    12.1.9点划线
    12.1.10像素对齐
    12.2画刷
    12.2.1SolidColorBrush画刷
    12.2.2LinearGradientBrush画刷
    12.2.3RadialGradientBrush画刷
    12.2.4ImageBrush画刷
    12.2.5平铺的ImageBrush画刷
    12.2.6VisualBrush画刷
    12.2.7BitmapCacheBrush画刷
    12.3变换
    12.3.1变换形状
    12.3.2变换元素
    12.4透明
    12.4.1使元素半透明
    12.4.2透明掩码
    12.5小结
    第13章几何图形和图画
    13.1路径和几何图形
    13.1.1直线、矩形和椭圆图形
    13.1.2使用GeometryGroup组合形状
    13.1.3使用CombinedGeometry融合几何图形
    13.1.4使用PathGeometry绘制曲线和直线
    13.1.5微语言几何图形
    13.1.6使用几何图形进行剪裁
    13.2图画
    13.2.1显示图画
    13.2.2导出插图
    13.3小结
    第14章效果和可视化对象
    14.1可视化对象
    14.1.1绘制可视化对象
    14.1.2在元素中封装可视化对象
    14.1.3命中测试
    14.1.4复杂的命中测试
    14.2效果
    14.2.1BlurEffect类
    14.2.2DropShadowEffect类
    14.2.3ShaderEffect类
    14.3WriteableBitmap类
    14.3.1生成位图
    14.3.2写入WriteableBitmap对象
    14.3.3更高效的像素写入
    14.4小结
    第15章动画基础
    15.1理解WPF动画
    15.1.1基于时间的动画
    15.1.2基于属性的动画
    15.2基本动画
    15.2.1Animation类
    15.2.2使用代码创建动画
    15.2.3同时发生的动画
    15.2.4动画的生命周期
    15.2.5Timeline类
    15.3故事板
    15.3.1故事板
    15.3.2事件触发器
    15.3.3重叠动画
    15.3.4同步的动画
    15.3.5控制播放
    15.3.6监视动画进度
    15.4动画缓动
    15.4.1使用缓动函数
    15.4.2在动画开始时应用缓动与在动画结束时应用缓动
    15.4.3缓动函数类
    15.4.4创建自定义缓动函数
    15.5动画性能
    15.5.1期望的帧率
    15.5.2位图缓存
    15.6小结
    第16章高级动画
    16.1动画类型回顾
    16.1.1动态变换
    16.1.2动态改变画刷
    16.1.3动态改变像素着色器
    16.2关键帧动画
    16.2.1离散的关键帧动画
    16.2.2缓动关键帧
    16.2.3样条关键帧动画
    16.3基于路径的动画
    16.4基于帧的动画
    16.5使用代码创建故事板
    16.5.1创建主窗口
    16.5.2创建Bomb用户控件
    16.5.3投弹
    16.5.4拦截炸弹
    16.5.5统计炸弹和清理工作
    16.6小结

    第Ⅳ部分模板和自定义元素
    第17章控件模板
    17.1理解逻辑树和可视化树
    17.2理解模板
    17.2.1修饰类
    17.2.2剖析控件
    17.3创建控件模板
    17.3.1简单按钮
    17.3.2模板绑定
    17.3.3改变属性的触发器
    17.3.4使用动画的触发器
    17.4组织模板资源
    17.4.1分解按钮控件模板
    17.4.2通过样式应用模板
    17.4.3自动应用模板
    17.4.4由用户选择的皮肤
    17.5构建更复杂的模板
    17.5.1嵌套的模板
    17.5.2修改滚动条
    17.5.3控件模板示例
    17.6可视化状态
    17.7小结
    第18章自定义元素
    18.1理解WPF中的自定义元素
    18.2构建基本的用户控件
    18.2.1定义依赖项属性
    18.2.2定义路由事件
    18.2.3添加标记
    18.2.4使用控件
    18.2.5命令支持
    18.2.6深入分析用户控件
    18.3创建无外观控件
    18.3.1修改颜色拾取器的代码
    18.3.2修改颜色拾取器的标记
    18.3.3精简控件模板
    18.4支持可视化状态
    18.4.1开始编写FlipPanel类
    18.4.2选择部件和状态
    18.4.3默认控件模板
    18.4.4使用FlipPanel控件
    18.4.5使用不同的控件模板
    18.5创建自定义面板
    18.5.1两步布局过程
    18.5.2Canvas面板的副本
    18.5.3更好的WrapPanel面板
    18.6自定义绘图元素
    18.6.1OnRender()方法
    18.6.2评估自定义绘图
    18.6.3自定义绘图元素
    18.6.4创建自定义装饰元素
    18.7小结

    第Ⅴ部分数据
    第19章数据绑定
    19.1使用自定义对象绑定到数据库
    19.1.1构建数据访问组件
    19.1.2构建数据对象
    19.1.3显示绑定对象
    19.1.4更新数据库
    19.1.5更改通知
    19.2绑定到对象集合
    19.2.1显示和编辑集合项
    19.2.2插入和移除集合项
    19.2.3绑定到ADO.NET对象
    19.2.4绑定到LINQ表达式
    19.3提高大列表的性能
    19.3.1虚拟化
    19.3.2项容器再循环
    19.3.3缓存长度
    19.3.4延迟滚动
    19.4验证
    19.4.1在数据对象中进行验证
    19.4.2自定义验证规则
    19.4.3响应验证错误
    19.4.4获取错误列表
    19.4.5显示不同的错误指示符号
    19.4.6验证多个值
    19.5数据提供者
    19.5.1ObjectDataProvider
    19.5.2XmlDataProvider
    19.6小结
    第20章格式化绑定的数据
    20.1数据绑定回顾
    20.2数据转换
    20.2.1使用StringFormat属性
    20.2.2值转换器简介
    20.2.3使用值转换器设置字符串的格式
    20.2.4使用值转换器创建对象
    20.2.5应用条件格式化
    20.2.6评估多个属性
    20.3列表控件
    20.4列表样式
    20.4.1ItemContainerStyle
    20.4.2包含复选框或单选按钮的ListBox控件
    20.4.3交替条目样式
    20.4.4样式选择器
    20.5数据模板
    20.5.1分离和重用模板
    20.5.2使用更高级的模板
    20.5.3改变模板
    20.5.4模板选择器
    20.5.5模板与选择
    20.5.6改变项的布局
    20.6ComboBox控件
    20.7小结
    第21章数据视图
    21.1View对象
    21.1.1检索视图对象
    21.1.2视图导航
    21.1.3以声明方式创建视图
    21.2过滤、排序与分组
    21.2.1过滤集合
    21.2.2过滤DataTable对象
    21.2.3排序
    21.2.4分组
    21.2.5实时成型
    21.3小结
    第22章列表、树和网格
    22.1ListView控件
    22.1.1使用GirdView创建列
    22.1.2创建自定义视图
    22.2TreeView控件
    22.2.1创建数据绑定的TreeView控件
    22.2.2将DataSet对象绑定到TreeView控件
    22.2.3即时创建节点
    22.3DataGrid控件
    22.3.1改变列的尺寸与重新安排列
    22.3.2定义列
    22.3.3设置列的格式和样式
    22.3.4设置行的格式
    22.3.5显示行细节
    22.3.6冻结列
    22.3.7选择
    22.3.8排序
    22.3.9编辑
    22.4小结

    第Ⅵ窗口、页面和富控件
    第23章窗口
    23.1Window类
    23.1.1显示窗口
    23.1.2定位窗口
    23.1.3保存和还原窗口位置
    23.2窗口交互
    23.2.1窗口所有权
    23.2.2对话框模型
    23.2.3通用对话框
    23.3非矩形窗口
    23.3.1简单形状窗口
    23.3.2具有形状内容的透明窗口
    23.3.3移动形状窗口
    23.3.4改变形状窗口的尺寸
    23.3.5组合到一起:窗口的自定义控件模板
    23.4Windows7任务栏编程
    23.4.1使用跳转列表
    23.4.2改变任务栏图标和预览
    23.5小结
    第24章页面和导航
    24.1基于页面的导航
    24.2基于页面的界面
    24.2.1创建一个具有导航窗口的基于页面的简单应用程序
    24.2.2Page类
    24.2.3超链接
    24.2.4在框架中驻留页面
    24.2.5在另一个页面中驻留页面
    24.2.6在Web浏览器中驻留页面
    24.3页面历史
    24.3.1深入分析WPF中的URI
    24.3.2导航历史
    24.3.3维护自定义的属性
    24.4导航服务
    24.4.1通过编程进行导航
    24.4.2导航事件
    24.4.3管理日志
    24.4.4向日志添加自定义项
    24.4.5使用页函数
    24.5XAML浏览器应用程序
    24.5.1创建XBAP应用程序
    24.5.2部署XBAP应用程序
    24.5.3更新XBAP应用程序
    24.5.4XBAP应用程序的安全性
    24.5.5完全信任的XBAP应用程序
    24.5.6组合XBAP/独立应用程序
    24.5.7为不同的安全级别编写代码
    24.5.8在网页中嵌入XBAP应用程序
    24.6WebBrowser控件
    24.6.1导航到页面
    24.6.2构建DOM树
    24.6.3使用.NET代码为网页添加脚本
    24.7小结
    第25章菜单、工具栏和功能区
    25.1菜单
    25.1.1Menu类
    25.1.2菜单项
    25.1.3ContextMenu类
    25.1.4菜单分隔条
    25.2工具栏和状态栏
    25.2.1ToolBar控件
    25.2.2StatusBar控件
    25.3功能区
    25.3.1添加功能区
    25.3.2应用程序菜单
    25.3.3选项卡、组与按钮
    25.3.4富工具提示
    25.3.5带有快捷键提示的键盘访问
    25.3.6改变功能区的大小
    25.3.7快速访问工具栏
    25.4小结
    第26章声音和视频
    26.1播放WAV音频
    26.1.1SoundPlayer类
    26.1.2SoundPlayerAction类
    26.1.3系统声音
    26.2MediaPlayer类
    26.3MediaElement类
    26.3.1使用代码播放音频
    26.3.2处理错误
    26.3.3使用触发器播放音频
    26.3.4播放多个声音
    26.3.5改变音量、平衡、速度以及位置
    26.3.6将动画同步到音频
    26.3.7播放视频
    26.3.8视频效果
    26.4语音
    26.4.1语音合成
    26.4.2语音识别
    26.5小结
    第27章3D绘图
    27.13D绘图基础
    27.1.1视口
    27.1.23D对象
    27.1.3摄像机
    27.2深入研究3D绘图
    27.2.1着色和法线
    27.2.2更复杂的形状
    27.2.3Model3DGroup集合
    27.2.4使用材质
    27.2.5纹理映射
    27.3交互和动画
    27.3.1变换
    27.3.2旋转
    27.3.3飞过
    27.3.4跟踪球
    27.3.5命中测试
    27.3.63D表面上的2D元素
    27.4小结

    第Ⅶ部分文档和打印
    第28章文档
    28.1理解文档
    28.2流文档
    28.2.1流内容元素
    28.2.2设置内容元素的格式
    28.2.3创建简单的流文档
    28.2.4块元素
    28.2.5内联元素
    28.2.6通过代码与元素进行交互
    28.2.7文本对齐
    28.3只读流文档容器
    28.3.1缩放
    28.3.2创建页面和列
    28.3.3从文件加载文档
    28.3.4打印
    28.4编辑流文档
    28.4.1加载文件
    28.4.2保存文件
    28.4.3设置所选文本的格式
    28.4.4获取单个单词
    28.5固定文档
    28.6批注
    28.6.1批注类
    28.6.2启用批注服务
    28.6.3创建批注
    28.6.4检查批注
    28.6.5响应批注更改
    28.6.6在固定文档中保存批注
    28.6.7自定义便签的外观
    28.7小结
    第29章打印
    29.1基本打印
    29.1.1打印元素
    29.1.2变换打印输出
    29.1.3打印不显示的元素
    29.1.4打印文档
    29.1.5在文档打印输出中控制页面
    29.2自定义打印
    29.2.1使用可视化层中的类进行打印
    29.2.2自定义多页打印
    29.3打印设置和管理
    29.3.1保存打印设置
    29.3.2打印页面范围
    29.3.3管理打印队列
    29.4通过XPS进行打印
    29.4.1为打印预览创建XPS文档
    29.4.2写入内存的XPS文档
    29.4.3通过XPS直接打印到打印机
    29.4.4异步打印
    29.5小结

    第Ⅷ部分其他主题
    第30章与Windows窗体进行交互
    30.1访问互操作性
    30.2混合窗口和窗体
    30.2.1为WPF应用程序添加窗体
    30.2.2为Windows窗体应用程序添加WPF窗口
    30.2.3显示模态窗口和窗体
    30.2.4显示非模态窗口和窗体
    30.2.5启用Windows窗体控件的可视化风格
    30.3创建具有混合内容的窗口
    30.3.1WPF和Windows窗体“空域”
    30.3.2在WPF中驻留Windows窗体控件
    30.3.3使用WPF和Windows窗体用户控件
    30.3.4在Windows窗体中驻留WPF控件
    30.3.5访问键、助记码和焦点
    30.3.6属性映射
    30.4小结
    第31章多线程
    31.1了解多线程模型
    31.1.1Dispatcher类
    31.1.2DispatcherObject类
    31.2BackgroundWorker类
    31.2.1简单的异步操作
    31.2.2创建BackgroundWorker对象
    31.2.3运行BackgroundWorker对象
    31.2.4跟踪进度
    31.2.5支持取消
    31.3小结
    第32章插件模型
    32.1在MAF和MEF两者间进行选择
    32.2了解插件管道
    32.2.1管道的工作原理
    32.2.2插件文件夹结构
    32.2.3为使用插件模型准备解决方案
    32.3创建使用插件模型的应用程序
    32.3.1协定
    32.3.2插件视图
    32.3.3插件
    32.3.4插件适配器
    32.3.5宿主视图
    32.3.6宿主适配器
    32.3.7宿主
    32.3.8更多插件
    32.4与宿主进行交互
    32.5可视化插件
    32.6小结
    第33章ClickOnce部署
    33.1理解应用程序部署
    33.1.1ClickOnce安装模型
    33.1.2ClickOnce部署的局限性
    33.2简单的ClickOnce发布
    33.2.1设置发布者和产品
    33.2.2启动发布向导
    33.2.3理解部署文件的结构
    33.2.4安装ClickOnce应用程序
    33.2.5更新ClickOnce应用程序
    33.3ClickOnce附加选项
    33.3.1发布版本
    33.3.2更新
    33.3.3文件关联
    33.3.4发布选项
    33.4小结
  • 内容简介:
      WPF提供了为Windows操作系统构建高品质用户界面的开发框架,融合了源于多个渠道的丰富内容,为您充分利用Windows计算机的处理能力提供了前所未有的机会。
      《.NET开发经典名著·WPF编程宝典:使用C#2012和.NET4.5(第4版)》全面讲解WPF的实际工作原理,是一本WPF专业著作。在紧贴实用示例这一思想的引导下,列出实用提示,引导以专业的方式使用WPF。《.NET开发经典名著·WPF编程宝典:使用C#2012和.NET4.5(第4版)》开篇介绍WPF基本概念以便为您奠定坚实的基础,并将现有C#技能作为引用框架,然后讨论高级概念,结合实际演示它们的用法,并重点强调了可由此节省的时间和人力成本。
      主要内容:
      ·理解WPF编程的基础知识:从XAML到控件,乃至数据流;
      ·开发实用的应用程序,带您实际了解导航、本地化和开发;
      ·探讨WPF提供的高级用户界面控件;
      ·分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术;
      ·使用图形和多媒体来增强应用程序。
  • 作者简介:
      麦克唐纳(MatthewMacDonald),是一位作家、教育家,也是微软最有价值专家。他撰写了十多本有关.NET编程的书籍,包括ProSilverlight3inC#(2009年Apress出版)和ProASP.NET3.5inC#(2007年Apress出版)以及本书的前一版本。目前他与妻子以及两个女儿居住在多伦多。
  • 目录:
    第Ⅰ部分基础知识
    第1章WPF概述
    1.1Windows图形演化
    1.1.1DirectX:新的图形引擎
    1.1.2硬件加速与WPF
    1.2WPF:高级API
    1.3分辨率无关性
    1.3.1WPF单位
    1.3.2系统DPI
    1.3.3位图和矢量图形
    1.4WPF体系结构
    1.5WPF4.5
    1.5.1WPF工具包
    1.5.2VisualStudio2012
    1.6小结
    第2章XAML
    2.1理解XAML
    2.1.1WPF之前的图形用户界面
    2.1.2XAML变体
    2.1.3XAML编译
    2.2XAML基础
    2.2.1XAML名称空间
    2.2.2代码隐藏类
    2.3XAML中的属性和事件
    2.3.1简单属性与类型转换器
    2.3.2复杂属性
    2.3.3标记扩展
    2.3.4附加属性
    2.3.5嵌套元素
    2.3.6特殊字符与空白
    2.3.7事件
    2.3.8完整的EightBallAnswer示例
    2.4使用其他名称空间中的类型
    2.5加载和编译XAML
    2.5.1只使用代码
    2.5.2使用代码和未经编译的XAML
    2.5.3使用代码和编译过的XAML
    2.5.4只使用XAML
    2.6小结
    第3章布局
    3.1理解WPF中的布局
    3.1.1WPF布局原则
    3.1.2布局过程
    3.1.3布局容器
    3.2使用StackPanel面板进行简单布局
    3.2.1布局属性
    3.2.2对齐方式
    3.2.3边距
    3.2.4最小尺寸、最大尺寸以及显式地设置尺寸
    3.2.5Border控件
    3.3WrapPanel和DockPanel面板
    3.3.1WrapPanel面板
    3.3.2DockPanel面板
    3.3.3嵌套布局容器
    3.4Grid面板
    3.4.1调整行和列
    3.4.2布局舍入
    3.4.3跨越行和列
    3.4.4分割窗口
    3.4.5共享尺寸组
    3.4.6UniformGrid面板
    3.5使用Canvas面板进行基于坐标的布局
    3.5.1Z顺序
    3.5.2lnkCanvas元素
    3.6布局示例
    3.6.1列设置
    3.6.2动态内容
    3.6.3组合式用户界面
    3.7小结
    第4章依赖项属性
    4.1理解依赖项属性
    4.1.1定义依赖项属性
    4.1.2注册依赖项属性
    4.1.3添加属性包装器
    4.1.4WPF使用依赖项属性的方式
    4.1.5共享的依赖项属性
    4.1.6附加的依赖项属性
    4.2属性验证
    4.2.1验证回调
    4.2.2强制回调
    4.3小结
    第5章路由事件
    5.1理解路由事件
    5.1.1定义、注册和封装路由事件
    5.1.2共享路由事件
    5.1.3引发路由事件
    5.1.4处理路由事件
    5.2事件路由
    5.2.1RoutedEventArgs类
    5.2.2冒泡路由事件
    5.2.3处理挂起的事件
    5.2.4附加事件
    5.2.5隧道路由事件
    5.3WPF事件
    5.3.1生命周期事件
    5.3.2输入事件
    5.4键盘输入
    5.4.1处理按键事件
    5.4.2焦点
    5.4.3获取键盘状态
    5.5鼠标输入
    5.5.1鼠标单击
    5.5.2捕获鼠标
    5.5.3鼠标拖放
    5.6多点触控输入
    5.6.1多点触控的输入层次
    5.6.2原始触控
    5.6.3操作
    5.6.4惯性
    5.7小结

    第Ⅱ部分进一步研究WPF
    第6章控件
    6.1控件类
    6.1.1背景画刷和前景画刷
    6.1.2字体
    6.1.3鼠标光标
    6.2内容控件
    6.2.1Content属性
    6.2.2对齐内容
    6.2.3WPF内容原则
    6.2.4标签
    6.2.5按钮
    6.2.6工具提示
    6.3特殊容器
    6.3.1ScrollViewer
    6.3.2GroupBox
    6.3.3TabItem
    6.3.4Expander
    6.4文本控件
    6.4.1多行文本
    6.4.2选择文本
    6.4.3拼写检查
    6.4.4PasswordBox
    6.5列表控件
    6.5.1ListBox
    6.5.2ComboBox
    6.6基于范围的控件
    6.6.1Slider
    6.6.2ProgressBar
    6.7日期控件
    6.8小结
    第7章Application类
    7.1应用程序的生命周期
    7.1.1创建Application对象
    7.1.2派生自定义的Application类
    7.1.3应用程序的关闭方式
    7.1.4应用程序事件
    7.2Application类的任务
    7.2.1显示初始界面
    7.2.2处理命令行参数
    7.2.3访问当前Application对象
    7.2.4在窗口之间进行交互
    7.2.5单实例应用程序
    7.3程序集资源
    7.3.1添加资源
    7.3.2检索资源
    7.3.3packURI
    7.3.4内容文件
    7.4本地化
    7.4.1构建能够本地化的用户界面
    7.4.2使应用程序为本地化做好准备
    7.4.3管理翻译过程
    7.5小结
    第8章元素绑定
    8.1将元素绑定到一起
    8.1.1绑定表达式
    8.1.2绑定错误
    8.1.3绑定模式
    8.1.4使用代码创建绑定
    8.1.5使用代码检索绑定
    8.1.6多绑定
    8.1.7绑定更新
    8.1.8绑定延迟
    8.2绑定到非元素对象
    8.2.1Source属性
    8.2.2RelativeSource属性
    8.2.3DataContext属性
    8.3小结
    第9章命令
    9.1理解命令
    9.2WPF命令模型
    9.2.1ICommand接口
    9.2.2RoutedCommand类
    9.2.3RoutedUICommand类
    9.2.4命令库
    9.3执行命令
    9.3.1命令源
    9.3.2命令绑定
    9.3.3使用多命令源
    9.3.4微调命令文本
    9.3.5直接调用命令
    9.3.6禁用命令
    9.3.7具有内置命令的控件
    9.4高级命令
    9.4.1自定义命令
    9.4.2在不同位置使用相同的命令
    9.4.3使用命令参数
    9.4.4跟踪和翻转命令
    9.5小结
    第10章资源
    10.1资源基础
    10.1.1资源集合
    10.1.2资源的层次
    10.1.3静态资源和动态资源
    10.1.4非共享资源
    10.1.5通过代码访问资源
    10.1.6应用程序资源
    10.1.7系统资源
    10.2资源字典
    10.2.1创建资源字典
    10.2.2使用资源字典
    10.2.3在程序集之间共享资源
    10.3小结
    第11章样式和行为
    11.1样式基础
    11.1.1创建样式对象
    11.1.2设置属性
    11.1.3关联事件处理程序
    11.1.4多层样式
    11.1.5通过类型自动应用样式
    11.2触发器
    11.2.1简单触发器
    11.2.2事件触发器
    11.3行为
    11.3.1获取行为支持
    11.3.2理解行为模型
    11.3.3创建行为
    11.3.4使用行为
    11.3.5Blend中的设计时行为支持
    11.4小结

    第Ⅲ部分图画和动画
    第12章形状、画刷和变换
    12.1理解形状
    12.1.1Shape类
    12.1.2矩形和椭圆
    12.1.3改变形状的尺寸和放置形状
    12.1.4使用Viewbox控件缩放形状
    12.1.5直线
    12.1.6折线
    12.1.7多边形
    12.1.8直线线帽和直线交点
    12.1.9点划线
    12.1.10像素对齐
    12.2画刷
    12.2.1SolidColorBrush画刷
    12.2.2LinearGradientBrush画刷
    12.2.3RadialGradientBrush画刷
    12.2.4ImageBrush画刷
    12.2.5平铺的ImageBrush画刷
    12.2.6VisualBrush画刷
    12.2.7BitmapCacheBrush画刷
    12.3变换
    12.3.1变换形状
    12.3.2变换元素
    12.4透明
    12.4.1使元素半透明
    12.4.2透明掩码
    12.5小结
    第13章几何图形和图画
    13.1路径和几何图形
    13.1.1直线、矩形和椭圆图形
    13.1.2使用GeometryGroup组合形状
    13.1.3使用CombinedGeometry融合几何图形
    13.1.4使用PathGeometry绘制曲线和直线
    13.1.5微语言几何图形
    13.1.6使用几何图形进行剪裁
    13.2图画
    13.2.1显示图画
    13.2.2导出插图
    13.3小结
    第14章效果和可视化对象
    14.1可视化对象
    14.1.1绘制可视化对象
    14.1.2在元素中封装可视化对象
    14.1.3命中测试
    14.1.4复杂的命中测试
    14.2效果
    14.2.1BlurEffect类
    14.2.2DropShadowEffect类
    14.2.3ShaderEffect类
    14.3WriteableBitmap类
    14.3.1生成位图
    14.3.2写入WriteableBitmap对象
    14.3.3更高效的像素写入
    14.4小结
    第15章动画基础
    15.1理解WPF动画
    15.1.1基于时间的动画
    15.1.2基于属性的动画
    15.2基本动画
    15.2.1Animation类
    15.2.2使用代码创建动画
    15.2.3同时发生的动画
    15.2.4动画的生命周期
    15.2.5Timeline类
    15.3故事板
    15.3.1故事板
    15.3.2事件触发器
    15.3.3重叠动画
    15.3.4同步的动画
    15.3.5控制播放
    15.3.6监视动画进度
    15.4动画缓动
    15.4.1使用缓动函数
    15.4.2在动画开始时应用缓动与在动画结束时应用缓动
    15.4.3缓动函数类
    15.4.4创建自定义缓动函数
    15.5动画性能
    15.5.1期望的帧率
    15.5.2位图缓存
    15.6小结
    第16章高级动画
    16.1动画类型回顾
    16.1.1动态变换
    16.1.2动态改变画刷
    16.1.3动态改变像素着色器
    16.2关键帧动画
    16.2.1离散的关键帧动画
    16.2.2缓动关键帧
    16.2.3样条关键帧动画
    16.3基于路径的动画
    16.4基于帧的动画
    16.5使用代码创建故事板
    16.5.1创建主窗口
    16.5.2创建Bomb用户控件
    16.5.3投弹
    16.5.4拦截炸弹
    16.5.5统计炸弹和清理工作
    16.6小结

    第Ⅳ部分模板和自定义元素
    第17章控件模板
    17.1理解逻辑树和可视化树
    17.2理解模板
    17.2.1修饰类
    17.2.2剖析控件
    17.3创建控件模板
    17.3.1简单按钮
    17.3.2模板绑定
    17.3.3改变属性的触发器
    17.3.4使用动画的触发器
    17.4组织模板资源
    17.4.1分解按钮控件模板
    17.4.2通过样式应用模板
    17.4.3自动应用模板
    17.4.4由用户选择的皮肤
    17.5构建更复杂的模板
    17.5.1嵌套的模板
    17.5.2修改滚动条
    17.5.3控件模板示例
    17.6可视化状态
    17.7小结
    第18章自定义元素
    18.1理解WPF中的自定义元素
    18.2构建基本的用户控件
    18.2.1定义依赖项属性
    18.2.2定义路由事件
    18.2.3添加标记
    18.2.4使用控件
    18.2.5命令支持
    18.2.6深入分析用户控件
    18.3创建无外观控件
    18.3.1修改颜色拾取器的代码
    18.3.2修改颜色拾取器的标记
    18.3.3精简控件模板
    18.4支持可视化状态
    18.4.1开始编写FlipPanel类
    18.4.2选择部件和状态
    18.4.3默认控件模板
    18.4.4使用FlipPanel控件
    18.4.5使用不同的控件模板
    18.5创建自定义面板
    18.5.1两步布局过程
    18.5.2Canvas面板的副本
    18.5.3更好的WrapPanel面板
    18.6自定义绘图元素
    18.6.1OnRender()方法
    18.6.2评估自定义绘图
    18.6.3自定义绘图元素
    18.6.4创建自定义装饰元素
    18.7小结

    第Ⅴ部分数据
    第19章数据绑定
    19.1使用自定义对象绑定到数据库
    19.1.1构建数据访问组件
    19.1.2构建数据对象
    19.1.3显示绑定对象
    19.1.4更新数据库
    19.1.5更改通知
    19.2绑定到对象集合
    19.2.1显示和编辑集合项
    19.2.2插入和移除集合项
    19.2.3绑定到ADO.NET对象
    19.2.4绑定到LINQ表达式
    19.3提高大列表的性能
    19.3.1虚拟化
    19.3.2项容器再循环
    19.3.3缓存长度
    19.3.4延迟滚动
    19.4验证
    19.4.1在数据对象中进行验证
    19.4.2自定义验证规则
    19.4.3响应验证错误
    19.4.4获取错误列表
    19.4.5显示不同的错误指示符号
    19.4.6验证多个值
    19.5数据提供者
    19.5.1ObjectDataProvider
    19.5.2XmlDataProvider
    19.6小结
    第20章格式化绑定的数据
    20.1数据绑定回顾
    20.2数据转换
    20.2.1使用StringFormat属性
    20.2.2值转换器简介
    20.2.3使用值转换器设置字符串的格式
    20.2.4使用值转换器创建对象
    20.2.5应用条件格式化
    20.2.6评估多个属性
    20.3列表控件
    20.4列表样式
    20.4.1ItemContainerStyle
    20.4.2包含复选框或单选按钮的ListBox控件
    20.4.3交替条目样式
    20.4.4样式选择器
    20.5数据模板
    20.5.1分离和重用模板
    20.5.2使用更高级的模板
    20.5.3改变模板
    20.5.4模板选择器
    20.5.5模板与选择
    20.5.6改变项的布局
    20.6ComboBox控件
    20.7小结
    第21章数据视图
    21.1View对象
    21.1.1检索视图对象
    21.1.2视图导航
    21.1.3以声明方式创建视图
    21.2过滤、排序与分组
    21.2.1过滤集合
    21.2.2过滤DataTable对象
    21.2.3排序
    21.2.4分组
    21.2.5实时成型
    21.3小结
    第22章列表、树和网格
    22.1ListView控件
    22.1.1使用GirdView创建列
    22.1.2创建自定义视图
    22.2TreeView控件
    22.2.1创建数据绑定的TreeView控件
    22.2.2将DataSet对象绑定到TreeView控件
    22.2.3即时创建节点
    22.3DataGrid控件
    22.3.1改变列的尺寸与重新安排列
    22.3.2定义列
    22.3.3设置列的格式和样式
    22.3.4设置行的格式
    22.3.5显示行细节
    22.3.6冻结列
    22.3.7选择
    22.3.8排序
    22.3.9编辑
    22.4小结

    第Ⅵ窗口、页面和富控件
    第23章窗口
    23.1Window类
    23.1.1显示窗口
    23.1.2定位窗口
    23.1.3保存和还原窗口位置
    23.2窗口交互
    23.2.1窗口所有权
    23.2.2对话框模型
    23.2.3通用对话框
    23.3非矩形窗口
    23.3.1简单形状窗口
    23.3.2具有形状内容的透明窗口
    23.3.3移动形状窗口
    23.3.4改变形状窗口的尺寸
    23.3.5组合到一起:窗口的自定义控件模板
    23.4Windows7任务栏编程
    23.4.1使用跳转列表
    23.4.2改变任务栏图标和预览
    23.5小结
    第24章页面和导航
    24.1基于页面的导航
    24.2基于页面的界面
    24.2.1创建一个具有导航窗口的基于页面的简单应用程序
    24.2.2Page类
    24.2.3超链接
    24.2.4在框架中驻留页面
    24.2.5在另一个页面中驻留页面
    24.2.6在Web浏览器中驻留页面
    24.3页面历史
    24.3.1深入分析WPF中的URI
    24.3.2导航历史
    24.3.3维护自定义的属性
    24.4导航服务
    24.4.1通过编程进行导航
    24.4.2导航事件
    24.4.3管理日志
    24.4.4向日志添加自定义项
    24.4.5使用页函数
    24.5XAML浏览器应用程序
    24.5.1创建XBAP应用程序
    24.5.2部署XBAP应用程序
    24.5.3更新XBAP应用程序
    24.5.4XBAP应用程序的安全性
    24.5.5完全信任的XBAP应用程序
    24.5.6组合XBAP/独立应用程序
    24.5.7为不同的安全级别编写代码
    24.5.8在网页中嵌入XBAP应用程序
    24.6WebBrowser控件
    24.6.1导航到页面
    24.6.2构建DOM树
    24.6.3使用.NET代码为网页添加脚本
    24.7小结
    第25章菜单、工具栏和功能区
    25.1菜单
    25.1.1Menu类
    25.1.2菜单项
    25.1.3ContextMenu类
    25.1.4菜单分隔条
    25.2工具栏和状态栏
    25.2.1ToolBar控件
    25.2.2StatusBar控件
    25.3功能区
    25.3.1添加功能区
    25.3.2应用程序菜单
    25.3.3选项卡、组与按钮
    25.3.4富工具提示
    25.3.5带有快捷键提示的键盘访问
    25.3.6改变功能区的大小
    25.3.7快速访问工具栏
    25.4小结
    第26章声音和视频
    26.1播放WAV音频
    26.1.1SoundPlayer类
    26.1.2SoundPlayerAction类
    26.1.3系统声音
    26.2MediaPlayer类
    26.3MediaElement类
    26.3.1使用代码播放音频
    26.3.2处理错误
    26.3.3使用触发器播放音频
    26.3.4播放多个声音
    26.3.5改变音量、平衡、速度以及位置
    26.3.6将动画同步到音频
    26.3.7播放视频
    26.3.8视频效果
    26.4语音
    26.4.1语音合成
    26.4.2语音识别
    26.5小结
    第27章3D绘图
    27.13D绘图基础
    27.1.1视口
    27.1.23D对象
    27.1.3摄像机
    27.2深入研究3D绘图
    27.2.1着色和法线
    27.2.2更复杂的形状
    27.2.3Model3DGroup集合
    27.2.4使用材质
    27.2.5纹理映射
    27.3交互和动画
    27.3.1变换
    27.3.2旋转
    27.3.3飞过
    27.3.4跟踪球
    27.3.5命中测试
    27.3.63D表面上的2D元素
    27.4小结

    第Ⅶ部分文档和打印
    第28章文档
    28.1理解文档
    28.2流文档
    28.2.1流内容元素
    28.2.2设置内容元素的格式
    28.2.3创建简单的流文档
    28.2.4块元素
    28.2.5内联元素
    28.2.6通过代码与元素进行交互
    28.2.7文本对齐
    28.3只读流文档容器
    28.3.1缩放
    28.3.2创建页面和列
    28.3.3从文件加载文档
    28.3.4打印
    28.4编辑流文档
    28.4.1加载文件
    28.4.2保存文件
    28.4.3设置所选文本的格式
    28.4.4获取单个单词
    28.5固定文档
    28.6批注
    28.6.1批注类
    28.6.2启用批注服务
    28.6.3创建批注
    28.6.4检查批注
    28.6.5响应批注更改
    28.6.6在固定文档中保存批注
    28.6.7自定义便签的外观
    28.7小结
    第29章打印
    29.1基本打印
    29.1.1打印元素
    29.1.2变换打印输出
    29.1.3打印不显示的元素
    29.1.4打印文档
    29.1.5在文档打印输出中控制页面
    29.2自定义打印
    29.2.1使用可视化层中的类进行打印
    29.2.2自定义多页打印
    29.3打印设置和管理
    29.3.1保存打印设置
    29.3.2打印页面范围
    29.3.3管理打印队列
    29.4通过XPS进行打印
    29.4.1为打印预览创建XPS文档
    29.4.2写入内存的XPS文档
    29.4.3通过XPS直接打印到打印机
    29.4.4异步打印
    29.5小结

    第Ⅷ部分其他主题
    第30章与Windows窗体进行交互
    30.1访问互操作性
    30.2混合窗口和窗体
    30.2.1为WPF应用程序添加窗体
    30.2.2为Windows窗体应用程序添加WPF窗口
    30.2.3显示模态窗口和窗体
    30.2.4显示非模态窗口和窗体
    30.2.5启用Windows窗体控件的可视化风格
    30.3创建具有混合内容的窗口
    30.3.1WPF和Windows窗体“空域”
    30.3.2在WPF中驻留Windows窗体控件
    30.3.3使用WPF和Windows窗体用户控件
    30.3.4在Windows窗体中驻留WPF控件
    30.3.5访问键、助记码和焦点
    30.3.6属性映射
    30.4小结
    第31章多线程
    31.1了解多线程模型
    31.1.1Dispatcher类
    31.1.2DispatcherObject类
    31.2BackgroundWorker类
    31.2.1简单的异步操作
    31.2.2创建BackgroundWorker对象
    31.2.3运行BackgroundWorker对象
    31.2.4跟踪进度
    31.2.5支持取消
    31.3小结
    第32章插件模型
    32.1在MAF和MEF两者间进行选择
    32.2了解插件管道
    32.2.1管道的工作原理
    32.2.2插件文件夹结构
    32.2.3为使用插件模型准备解决方案
    32.3创建使用插件模型的应用程序
    32.3.1协定
    32.3.2插件视图
    32.3.3插件
    32.3.4插件适配器
    32.3.5宿主视图
    32.3.6宿主适配器
    32.3.7宿主
    32.3.8更多插件
    32.4与宿主进行交互
    32.5可视化插件
    32.6小结
    第33章ClickOnce部署
    33.1理解应用程序部署
    33.1.1ClickOnce安装模型
    33.1.2ClickOnce部署的局限性
    33.2简单的ClickOnce发布
    33.2.1设置发布者和产品
    33.2.2启动发布向导
    33.2.3理解部署文件的结构
    33.2.4安装ClickOnce应用程序
    33.2.5更新ClickOnce应用程序
    33.3ClickOnce附加选项
    33.3.1发布版本
    33.3.2更新
    33.3.3文件关联
    33.3.4发布选项
    33.4小结
查看详情
好书推荐 / 更多
WPF 编程宝典
胡迁作品:大象席地而坐
胡迁 著
WPF 编程宝典
OPUS作品(套装上下册)
[日]今敏 著;Mrs.X 译
WPF 编程宝典
近代能乐集(三岛由纪夫戏剧代表作,爱与美与死的永恒角力)
[日]三岛由纪夫 著;玖羽 译
WPF 编程宝典
上海字记:百年汉字设计档案
姜庆共、刘瑞樱 著
WPF 编程宝典
唐宋“古文运动”与士大夫文学
朱刚 著;王水照 编
WPF 编程宝典
行星
[英]贾尔斯•斯帕罗;Giles•Sparrow
WPF 编程宝典
马里琳·鲁滨逊作品基列三部曲:基列家书(2005年获得普利策小说奖,《卫报》21世纪百本伟大小说
玛丽莲·罗宾逊 著;李尧 译
WPF 编程宝典
特拉法尔加战役
朱利安·S.科贝特(Julian,S.,Corbett) 著;陈骆 译
WPF 编程宝典
大雪将至
[奥地利]罗伯特•泽塔勒 著
WPF 编程宝典
中国叙事学(第2版)
[美]浦安迪(Andrew H.Plaks) 著
WPF 编程宝典
肉体与石头:西方文明中的身体与城市
[美]理查德·桑内特 著;黄煜文 译
WPF 编程宝典
维多利亚女王:作为君王和女性的一生
[英]露西·沃斯利 著;张佩 译