发新话题
打印

WPF揭秘 书名:WPF揭秘 电子版下载

本主题由 webmaster 于 2008-7-2 09:56 置顶

WPF揭秘 书名:WPF揭秘 电子版下载

内容介绍: WPF是.NET 3.0最重要的组成部分,微软最新的程序界面开发技术,相当于MFC的最新版本,而且应用面要广得多。《WPF揭秘》是Amazon最佳畅销书,还获得了2008年Jolt大奖提名。 WPF揭秘打折购买 目 录

第一部分 背  景

第1章 为什么创造WPF... 2 1.1 回顾过去..... 2 1.2 步入WPF... 3 1.3 作为.NET Framework的组成部分..... 7 1.3.1 为托管代码而设计..... 8 1.3.2 强调声明式描述..... 8 1.4 小结..... 9 第2章 XAML揭秘...... 10 2.1 XAML定义..... 11 2.2 元素和特性..... 11 2.3 命名空间..... 12 2.4 属性元素..... 14 2.5 类型转换器..... 15 2.6 标记扩展..... 16 2.7 对象元素的子元素..... 18 2.7.1 内容属性..... 18 2.7.2 集合项..... 19 2.7.3 更多类型转换..... 20 2.8 编译:将XAML与过程式代码 混合使用..... 22 2.8.1 在运行时加载和解析XAML... 22 2.8.2 编译XAML... 24 2.8.3 XAML关键字..... 28 2.9 小结..... 29 2.9.1 抱怨1:XML太过冗长不便于 输入..... 30 2.9.2 抱怨2:基于XML的系统性 能差..... 30 第3章 WPF的重要新概念...... 31 3.1 逻辑树与可视树..... 31 3.2 依赖属性..... 35 3.2.1 依赖属性的实现..... 36 3.2.2 变更通知..... 38 3.2.3 属性值继承..... 39 3.2.4 对多个提供程序的支持..... 41 3.2.5 附加属性..... 43 3.3 路由事件..... 46 3.3.1 路由事件的实现..... 46 3.3.2 路由策略和事件处理程序..... 48 3.3.3 路由事件实践..... 48 3.3.4 附加事件..... 51 3.4 命令..... 53 3.4.1 内建命令..... 54 3.4.2 使用输入手势执行命令..... 57 3.4.3 带有内建命令绑定的控件..... 58 3.5 漫游类层次..... 59 3.6 小结..... 60

第二部分 构建WPF应用程序

第4章 WPF控件...... 62 4.1 内容控件..... 63 4.1.1 按钮..... 63 4.1.2 简单容器..... 66 4.1.3 带头(header)的容器..... 70 4.2 Items控件..... 71 4.2.1 选择器..... 73 4.2.2 菜单..... 82 4.2.3 其他Items控件..... 85 4.3 Range控件..... 89 4.3.1 ProgressBar... 89 4.3.2 Slider... 90 4.4 文本和墨水控件..... 90 4.4.1 TextBox... 91 4.4.2 RichTextBox... 91 4.4.3 PasswordBox... 92 4.4.4 InkCanvas... 92 4.5 小结..... 93 第5章 尺寸缩放、定位与变换元素...... 94 5.1 控制尺寸..... 95 5.1.1 高度和宽度..... 95 5.1.2 Margin和Padding... 96 5.1.3 Visibility... 98 5.2 控制定位..... 98 5.2.1 对齐..... 99 5.2.2 内容对齐..... 99 5.2.3 FlowDirection... 100 5.3 应用变换..... 101 5.3.1 RotateTransform... 102 5.3.2 ScaleTransform... 103 5.3.3 SkewTransform... 105 5.3.4 TranslateTransform... 105 5.3.5 MatrixTransform... 106 5.3.6 组合变换..... 106 5.4 小结..... 107 第6章 使用面板做布局...... 108 6.1 Canvas... 109 6.2 StackPanel... 111 6.3 WrapPanel... 112 6.4 DockPanel... 114 6.5 Grid... 116 6.5.1 改变行和列的尺寸..... 119 6.5.2 与GridSplitter交互改变 尺寸..... 120 6.5.3 共享行和列的尺寸..... 122 6.5.4 Grid与其他面板的比较..... 123 6.6 原始面板..... 124 6.6.1 TabPanel... 125 6.6.2 ToolBarOverflowPanel... 125 6.6.3 ToolBarTray... 125 6.6.4 UniformGrid... 125 6.7 处理内容溢出..... 126 6.7.1 剪辑..... 126 6.7.2 滚屏..... 127 6.7.3 缩放..... 129 6.8 把它们拼合:创建一个类似Visual Studio 的可收缩、可停靠、可改变尺寸的窗格..... 132 6.9 小结..... 141 第7章 构建并部署应用程序...... 142 7.1 标准Windows应用程序..... 142 7.1.1 Window类..... 143 7.1.2 Application类..... 145 7.1.3 创建并显示对话框..... 150 7.1.4 维持并恢复应用程序状态..... 152 7.1.5 部署:ClickOnce与Windows Installer. 153 7.2 基于导航的Windows应用程序..... 154 7.2.1 Page和它们的导航容器..... 154 7.2.2 页间导航..... 156 7.2.3 页间数据传递..... 160 7.3 拥有Windows Vista感官的应用程序..... 162 7.3.1 用TaskDialog替代 MessageBox.. 163 7.3.2 使用Aero Glass.. 165 7.4 Gadget风格的应用程序..... 168 7.5 XAML浏览器应用程序..... 169 7.5.1 功能限制..... 170 7.5.2 集成的导航功能..... 172 7.5.3 部署..... 172 7.6 松散XAML页..... 175 7.7 小结..... 176

第三部分 为专业开发人员设计的功能

第8章 资源...... 178 8.1 二进制资源..... 178 8.1.1 定义二进制资源..... 178 8.1.2 访问二进制资源..... 179 8.1.3 本地化..... 183 8.2 逻辑资源..... 184 8.2.1 资源查找..... 187 8.2.2 静态资源与动态资源..... 187 8.2.3 与系统资源交互..... 192 8.3 小结..... 193 第9章 数据绑定...... 194 9.1 绑定对象..... 194 9.1.1 在程序代码中使用绑定..... 194 9.1.2 在XAML中使用绑定..... 196 9.1.3 与普通.NET属性绑定..... 197 9.1.4 绑定到整个对象..... 199 9.1.5 绑定到集合..... 200 9.1.6 与DataContext共享源..... 203 9.2 控制呈现..... 204 9.2.1 使用数据模板..... 204 9.2.2 使用值转换器..... 206 9.3 定制一个集合的视图..... 210 9.3.1 排序..... 210 9.3.2 分组..... 212 9.3.3 过滤..... 214 9.3.4 导航..... 215 9.3.5 使用其他视图..... 216 9.4 数据提供程序..... 218 9.4.1 XmlDataProvider... 218 9.4.2 ObjectDataProvider... 222 9.5 高级主题..... 224 9.5.1 自定义数据流..... 224 9.5.2 向绑定添加验证规则..... 226 9.5.3 写你自己的验证规则..... 226 9.5.4 使用不相交源..... 228 9.6 把它们拼合:纯XAML RSS阅读器..... 230 9.7 小结..... 232 第10章 样式、模板、皮肤和主题...... 233 10.1 样式..... 234 10.1.1 共享Style.. 235 10.1.2 触发器..... 240 10.2 模板..... 244 10.2.1 控件模板..... 245 10.2.2 与触发器交互..... 246 10.2.3 限制目标类型..... 247 10.2.4 关于已应用模板的父元素的 属性..... 248 10.2.5 关于可视状态..... 254 10.2.6 将模板与样式混合起来..... 258 10.3 皮肤..... 260 10.4 主题..... 266 10.4.1 使用系统颜色、字体和参数..... 266 10.4.2 每个主题的样式和模板..... 267 10.5 小结..... 270

第四部分 通过富媒体使程序领先于时代

第11章 2D图形...... 272 11.1 Drawing.. 273 11.1.1 Geometry.. 275 11.1.2 Pen.. 283 11.1.3 剪贴画示例..... 285 11.2 Visual.. 286 11.2.1 用内容填充DrawingVisual.. 286 11.2.2 在屏幕上显示Visual.. 289 11.2.3 可视命中测试..... 291 11.3 Shape.. 297 11.3.1 Rectangle.. 298 11.3.2 Ellipse.. 299 11.3.3 Line.. 300 11.3.4 Polyline.. 300 11.3.5 Polygon.. 301 11.3.6 Path.. 301 11.3.7 基于Shape的剪贴画..... 302 11.4 Brush.. 303 11.4.1 颜色笔刷..... 303 11.4.2 tile笔刷..... 309 11.4.3 把Brush用作透明掩码..... 315 11.5 位图效果..... 317 11.6 小结..... 320 第12章 3D图形...... 321 12.1 3D图形入门..... 321 12.2 Camera和坐标系统..... 325 12.2.1 Position属性..... 325 12.2.2 LookDirection.. 327 12.2.3 UpDirection.. 329 12.2.4 平行投影与透视投影..... 331 12.3 Transform3D.. 332 12.3.1 TranslateTransform3D.. 334 12.3.2 ScaleTransform3D.. 335 12.3.3 RotateTransform3D.. 337 12.3.4 Transform3D组合..... 339 12.4 Model3D.. 340 12.4.1 光照(Light)..... 341 12.4.2 GeometryModel3D.. 345 12.5 Visual3D.. 357 12.5.1 ModelVisual3D.. 357 12.5.2 3D命中测试..... 358 12.6 Viewport3D元素..... 359 12.7 小结..... 362 第13章 动画...... 363 13.1 程序代码中的动画..... 363 13.1.1 “手工”实现动画..... 363 13.1.2 动画类..... 365 13.1.3 简单的动画调整..... 370 13.2 XAML中的动画..... 373 13.2.1 EventTrigger包含 storyboard.. 374 13.2.2 将Storyboard作为Timeline 使用..... 379 13.3 关键帧动画..... 381 13.3.1 线性关键帧..... 382 13.3.2 样条关键帧..... 384 13.3.3 离散关键帧..... 385 13.4 小结..... 387 第14章 音频、视频、语音和文档...... 388 14.1 音频..... 388 14.1.1 SoundPlayerAction.. 389 14.1.2 MediaPlayer.. 390 14.1.3 MediaElement和 MediaTimeline.. 390 14.2 视频..... 392 14.2.1 控制MediaElement的外观..... 392 14.2.2 控制媒体..... 394 14.3 语音..... 397 14.3.1 语音合成..... 397 14.3.2 语音识别..... 400 14.4 文档..... 403 14.4.1 创建流文档..... 403 14.4.2 显示流文档..... 412 14.4.3 添加注释..... 414 14.5 小结..... 417

第五部分 高级主题

第15章 与Win32、Windows Form 以及ActiveX之间的互用性...... 420 15.1 在WPF应用程序中嵌入Win32控件..... 421 15.1.1 一个Win32 Webcam控件..... 422 15.1.2 在WPF里使用Webcam控件..... 425 15.1.3 支持键盘导航..... 430 15.2 在Win32程序里嵌入WPF控件..... 434 15.2.1 HwndSource.. 434 15.2.2 获得正确的布局..... 437 15.3 在WPF应用程序中嵌入Windows Forms控件..... 440 15.3.1 用程序代码嵌入一个 PropertyGrid.. 440 15.3.2 用XAML来嵌入一个 PropertyGrid.. 442 15.4 在Windows Forms应用程序里嵌入 WPF控件..... 443 15.5 在WPF应用程序中嵌入ActiveX控件..... 447 15.6 小结..... 450 第16章 用户控件和自定义控件...... 452 16.1 创建用户控件..... 453 16.1.1 创建用户界面..... 453 16.1.2 创建行为..... 455 16.1.3 添加依赖属性..... 458 16.1.4 添加路由事件..... 460 16.2 创建自定义控件..... 461 16.2.1 创建行为..... 462 16.2.2 创建用户界面..... 467 16.2.3 对更复杂控件的思考..... 470 16.3 小结..... 473 第17章 使用自定义面板做布局...... 474 17.1 面板与其子元素的通信..... 474 17.1.1 检测步骤..... 474 17.1.2 排列步骤..... 476 17.2 创建Office 2007风格的 RibbonPanel.. 477 17.2.1 RibbonPanel的行为..... 477 17.2.2 RibbonPanel实现..... 478 17.3 小结..... 481

第六部分 附  录

附录 有用的工具...... 484 ~
下载地址Windows Presentation Foundation Unleashed

TOP

前 言感谢你购买《WPF揭秘》!为避免让你感到失望,在这里我要先澄清一下,这不是一本关于Microsoft PowerPoint的书(许多人认为WPF是由PowerPoint演化而来的) ,WPF是微软最新的图形用户界面技术,这里的用户界面可以是普通的窗体、以文档为中心 的窗口、卡通动画、视频、逼真的3D环境,或者以上所有的组合!这项技术会让创建许多类型的应用程序变得比过去任何时候都要简单。例如,WPF可以使实现类似于Windows Media Player或Microsoft Word(或者至少WordPad)的应用程序变得相对简单,当然也可以创建类似于Microsoft PowerPoint的应用程序! 自从2003年WPF公之于众开始(当时的开发代号为Avalon),其革命性的创建软件的方式引起了(理所应当的)高度关注,特别是使用Windows Forms和GDI进行开发的开发人员。创建有趣、有用、可分享的WPF示例来演示各种类型的技术并不难,而如果使用其他技术,那么它们很难实现。但从编程模型、基础概念和使用的基本术语来看,WPF与以前的技术完全不同。甚至查看WPF的源代码(我们可以用一个类似于.NET Reflector的工具来破解并打开WPF的组件)也会让人感到困惑,因为你寻找的那些代码经常不在你所期望的位置。再加上完成任何一个任务都有很多方式,和许多人一样,你会得出一个结论:WPF的学习曲线非常陡。本书于是应运而生了。5年前,我编写了.NET and COM: The Complete Interoperability Guide,因为我觉得人们需要这样一本书,完整地讲解深奥和复杂的主题。WPF推出后,很明显在市场上肯定将不会缺WPF的书。但是我并不清楚,这些书能否通过实践的方式讲解WPF,同时引导人们理解这项技术及其独特的概念。因此,我在写本书时,确立了这样的目标: 以一种实用、易懂的方式来讲解基本概念,打好扎实的基础。 解决大多数人在学习这项技术时都会遇到的问题,以及演示如何完成一些最常见的任务。 成为一本权威的参考资料,这多亏WPF团队成员的参与,是他们设计、实现并且测试了这一技术。 讲清楚这项技术的缺点,而不只是将这项技术吹嘘成能解决所有问题的灵丹妙药。 要让书中的内容很容易查找,以便经常查阅。希望你能认可本书已具备了以上这些特点。本书适合的读者 这本书是为那些对用户界面感兴趣的软件开发人员编写的。无论你是在创建企业级商务应用程序,还是面向消费者的应用程序,抑或是一些可重用的控件,本书的许多内容都可帮助你发挥平台的最大功效。它易于理解,即使对那些.NET新手们也不难。如果你已经对WPF十分熟悉,我可以很自信地告诉你,你仍然可以从本书中学到一些东西。有一点是肯定的,它是你书架上一本不可或缺的参考书。因为WPF不仅允许你创建独立的Windows应用程序,也允许你创建寄宿于Web浏览器的内容,所以任何一个想寻找Adobe Flash替代品的人都将感受到本书很有意思。虽然更轻量级的、跨平台Silverlight没有在本书中大量涉及,但书中许多概念与Silverlight中的是相同的,也适用于WPF/E。虽然本书的内容并不是为图形设计师定制的,但阅读它可以很大程度上帮助理解像Microsoft Expression Blend这样的微软产品的精髓。现在概括一下这本书的内容。 涵盖了你所需要知道的关于XAML(eXtensible Application Markup Language)的一切,它是新的基于XML的语言,可用于创建易于改变样式的声明式用户界面。 以令人难以置信的深度讲解WPF特性:控件、布局、资源、数据绑定、样式、图形、动画等。 研究许多书中没有涉及的主题,如3D、语音、音频/视频、文档、位图特效等。 演示如何创建流行的UI元素,例如Microsoft Office System 2007中介绍的特性:Gallery、ScreenTip、自定义控件布局等。 演示如何创建复杂的UI机制,例如类似于Visual Studio的可折叠(collapsible)/可停靠(dockable)的窗口。 解释如何开发、部署所有类型的应用程序,包括基于导航的应用程序、寄宿于Web浏览器的应用程序以及带有好看的非矩形窗口的应用程序。 解释如何创建顶级的WPF自定义控件。 演示如何创建混合的WPF软件,这种软件融合了Windows Forms、ActiveX以及其他一些非WPF技术。 讲解如何在WPF应用程序中利用Windows Vista的新特性,以及如何突破WPF的某些限制。本书并没有涵盖WPF的所有特性,尤其是XPS(XML Paper Specification)规范文档仅涉及了一点点。WPF的内容太多了,我不相信哪一本书能涵盖所有这些内容。但是我相信你会为本书所达到的广度和深度而感到高兴。书中的示例有用XAML和C#写的,讨论互操作性的示例是用C++/CLI写的。频繁使用XAML有许多理由:它是表示源代码最简洁的方式;它可以经常被贴入像XamlPad(在Windows SDK中可以找到这个工具)这样的工具中,在不需要编译的情况下,快速查看结果;基于WPF的工具生成的是XAML而不是过程代码;无论你使用哪种.NET语言,就算你用Visual Basic.NET而不用C#,XAML也是可用的。当XAML与C#这样的语言的映射不是很明显时,我会把示例的XAML和过程代码都呈现出来。软件要求本书针对的软件有WPF 3.0最终版、相应的Windows SDK和2006年10月发布的Visual Studio 2005 .NET Framework 3.0扩展组件。下面的软件是必需的: 支持.NET Framework 3.0的Windows系统。可以是Windows XP SP2(包括Media Center版,Tablet PC版,x64版)、Windows Server 2003 SP1(包括R2版本)、Windows Vista或之后的版本。 .NET Framework 3.0从Windows Vista开始默认就是安装的。而对于较早版本的Windows来说,你可以从http://msdn.com免费下载 .NET Framework 3.0。我还推荐你使用下面的软件: Windows Software Development Kit (SDK),特别是包含在其中的.NET工具。这也是可以从http://msdn.com免费下载的。 Visual Studio 2005及之后的版本,也可以是免费的Express版本,你可以从http://msdn.com 下载该版本。如果你使用的是Visual Studio 2005(Express或其他版本),你应该从MSDN下载.NET Framework 3.0开发扩展。用Visual Studio 2005之后的版本,就不需要安装这个开发扩展。如果你需要另外的基于WPF的图形设计工具支持,Microsoft Expression将会有很大帮助。关于其他对于WPF设计和开发有用的软件请见附录。在第7章中的一些例子仅在Windows Vista下可用,但本书其他例子都是可以在Windows的任何版本中运行的。关于代码示例本书中的示例源代码可以到www.turingbook.com本书配套网页(免费注册)或www. adamnathan.net/wpf下载。本书结构本书主要由六个部分组成,按一般的先后顺序讲解了你需要理解的WPF功能。但是如果你想跳过直奔某一个主题,如3D或者动画部分,本书也适合你做“非线性的旅行”。下面对每一部分做一个简介。第一部分:背景本书是通过比较WPF与其他技术来介绍WPF的,它帮助你决定在何时使用WPF。第2章深入探索XAML,为你接下来理解XAML打基础,这些XAML你也会在实际工作中遇到。第3章重点讲解WPF编程模型中最独特的地方,以及.NET程序员还未理解的WPF特点。  第1章:为什么使用WPF。 第2章:XAML揭秘。 第3章:WPF的重要新概念。第二部分:构建WPF应用程序第二部分将向你讲解如何集成和部署一个外观老式的Windows应用程序(虽然它也有一些奇特的效果,如变换、非矩形窗口和Aero玻璃效果)。我们从介绍WPF控件的实现开始,这些控件有些是你想要的,也有一些是你想不到的。接下来两个章节讲解了如何在用户界面上排布这些控件(以及其他元素)。最后第7章通过讲解如何用不同的方式来采用基于WPF的用户界面,并打包和部署完整的应用程序。这不仅仅包括传统的独立Windows应用程序,还包括更像网页的应用程序。 第4章:WPF控件介绍。 第5章:缩放、定位和变换元素。 第6章:使用Panel进行布局。 第7章:构建及部署一个应用程序。第三部分:为专业开发人员设计的功能第三部分涉及的功能不仅仅在WPF应用程序中必须使用,也可以在很大程度上改进开发流程。因此,它们对于那些志在创建可维护和健壮的程序(或组件)的专业开发人员来说是不可或缺的。 第8章:资源。 第9章:数据绑定。 第10章:样式、模板、皮肤和主题。第四部分:通过富媒体使程序领先于时代这一部分将涵盖WPF最受人瞩目的特性。对2D和3D图形、动画、视频等的支持将允许你创建令人神往的用户体验,这些特性以及提供它们的方式使得WPF与以前的系统完全不同。WPF降低了将这些内容融入你的软件的门槛,因此,你才可以尝试一些过去从来不敢尝试的功能。 第11章:2D图形。 第12章:3D图形。 第13章:动画。 第14章:音频、视频、语音和文档。第五部分:高级主题第五部分涉及的主题是为高级应用程序开发人员和WPF控件的开发人员设计的。由于现有的WPF控件可以完全改变样式,所以大大减少了创建自定义控件的需求。 第15章:与Win32、Windows Forms和ActiveX的互操作性。 第16章:用户控件和自定义控件。 第17章:使用自定义Panel进行布局。第六部分:附录书中的一些约定书中用特别的字体表示术语和特殊条目,这些字体包括:字 体 意 思楷体 当我第一次提及一个新术语或者词时,我将使用楷体,有时也会为了强调使用楷体代码体 在屏幕提示信息、代码列表、命令示例和文件名中使用代码体。在代码列表中,斜体的代码体表示需根据实际替换浅灰色的代码体用于表示XAML元素和C#或C++关键字;粗浅灰色的代码体表示XML元素名称和C#或C++字符串;粗黑色的代码体表示XML特性;有底纹的代码体表示C#和C++中的类型名在整本书中,你会找到以下一些帮助栏: (常见问题解答)中通常是读者可能对本书中某个主题提出的问题,然后它会提供简明的解答。 (深入挖掘)中通常是高级的或者比帮助栏周围的文字更详细的关于这个主题的信息。如果你对某个主题比较好奇,可以好好看看“深入挖掘”的内容;但是如果你没有兴趣,可以忽略。 “提示”是一些可以在真实世界中帮助你的信息。它们通常会提供一些捷径或者替代方法,使得任务更加简单、快速或者产生更好的结果。 “注意”会告诉你一些动作或者条件,该动作或条件会引起一个不该出现的或不可预测的结果,它还会告诉你如何避免产生这样的结果。致谢首先,我不仅要向我的妻子Lindsay表示感谢,也要向她表示深深的歉意。令人遗憾的是,我在本书里所写的一切都没有办法弥补我过去一年中使她经受的磨难。在编写本书的过程中,我意识到两点,相信我的妻子也对这两点十分清楚:我写的书不会少于500页;要写这样一本书,我就不得不冷落我的家人。在新婚的第一年写第一本书也许还不算太糟糕,可这一年我们又初次为人父母。虽然,我可以在儿子入睡之后完成大部分的写作工作,但我却舍弃了太多和我妻子在一起的宝贵时光。然而在整本书写作期间Lindsay都显示出了不可思议的耐心和理解——比我所应得的要多得多。当离交稿时间越来越近,她为了让我能有充足的时间工作,每天早上5点就叫我起床,并悉心照顾我,帮助我保持身体健康。在我整理内容的时候,她甚至可以(站在我身后)提出她的想法和意见。总而言之,在我全神贯注坐在笨拙的小电脑前的时候,她照顾我,照顾我们的儿子,照顾我们的家,还有生活中的方方面面。她自始至终大度、谦虚、善解人意。Lindsay,我爱你,我还想对你说声对不起。虽然写作过程是孤寂的,但书却凝聚了许多辛勤工作的人们的智慧和心血。在此,我想花一些时间来感谢他们中的一些人,并按他们名字排序。特别感谢Daniel Lehenbauer,他是WPF中3D特性的开发主管,本书的3D章节是由他写成的,这远胜于我自己去勉为其难。加入了Daniel的观点和意见,对于所有想涉足3D的读者来说无疑是有极大益处的。Daniel还对本书的其他章节进行了非常细致的审校,提供了极有价值的意见。许多微软的同事也很爽快地答应审校一些章节,并提出了很好的反馈意见。在此我想感谢(按字母顺序排列)Beatriz de Oliveira Costa、Robert Hogue、Neil Kronlage、Mike Mueller、Oleg Ovetchkine、S. Ramini、Rob Relyea、Adam Smith和Tim Sneath。我还要感谢Lori Pearce和David Treadwell,有了他们的批准我才能写本书。我打心底感谢Sams的工作人员,特别是Neil Rowe,因为我不可能奢求比这更好的出版团队了。他们从没有质疑书的篇幅和风格是否符合Unleashed(揭秘)系列,也从来没有人责备我花的时间太长了(虽然在这个过程中我的确得到过有关进度的暗示)!他们没有给我任何束缚,所以我可以写一本我想写的书。当我问Neil是否可以彩色印刷这本书时,他不但这样做了,还十分有创意地把所有的示例代码按语法进行着色。 我还想感谢我的父母,是他们让我在上小学的时候就拓宽视野,接触计算机编程。如果你有孩子,在他们还小、还很在意你的意见的时候,请带他们了解编写软件的神奇艺术。(WPF甚至可以让他的体验更加有趣!) 最后,我要感谢你购买了本书,感谢你至少已经读到了这里!我希望你继续读下去,继续与我分享这令人痴迷的探索WPF之旅!

TOP

I will download thsi book

TOP

怎么下载

怎么下载怎么下载怎么下载怎么下载

TOP

发新话题