标题：Silverlight 3.0最新开发详解与最佳实践
基本信息
作者：魏永超  
丛书名： 网站开发路线图
出版社：清华大学出版社
ISBN：9787302214045
出版日期：2009 年12月
开本：16开
页码：554
版次：1-1
编辑推荐
微软(中国)平台及开发合作部技术经理 诚意推荐 .
新一轮RIA开发主张
最新版本的最佳开发流程..
最精准的Silverlight入门与精深途径
商业级别的案例精解
200多个Silverlight 3.0实例畅游所有技术细节
内容简介
本书是国内第一本全面介绍微软silverlight最新版本技术基础和开发实践的书籍，不仅涵盖面广，内容也有足够的深度。.
在ria应用程序开发中，程序员和设计师角色的分工各不相同，针对这一点，微软提供了相对应的silverlight开发工具，即visual studio和blend，这两种开发工具在书中通过一系列入门范例得到了详细的介绍，使读者可以快速上手开发项目。..
本书光盘包含完整的silverlight项目视频操作以及近200个完整范例，范例的深度根据知识点的侧重而不同，涵盖基本界面布局、动画效果应用、多媒体播放器、控件应用、linq语言与wcf通讯、.net ria service等各个方面。
本书适合silverlight技术研究、教学、编程人员，ria技术研究人员，以及silverlight爱好者阅读和使用
目录
part 1 开启silverlight之门 
第1章 步入silverlight世界 3
1 1 silverlight的起源与技术优势 4
1 2 silverlight的安装需求 7
1 2 1 silverlight支持的操作系统 8
1 2 2 下载和安装silverlight插件 9
1 3 体验silverlight应用程序 12
1 3 1 淘宝商城店铺银光版 12
1 3 2 新浪银光股票在线系统 12
1 3 3 腾讯滔滔 13
1 3 4 微软在线医疗系统解决方案 13
1 3 5 windows vista——silverlight版本 14
1 3 6 在线游戏平台 14
1 3 7 更多案例和技术支持 15
1 4 silverlight版本异同与特性一览 16
1 4 1 silverlight 1 0 16
1 4 2 silverlight 1 1 alpha 17
1 4 3 silverlight 2 0 18
1 4 4 silverlight 3 0 21
1 5 小结 25
第2章 silverlight 3开发工具与开发实践 27
2 1 silverlight开发工具 28
2 1 1 visual studio 2008 / visual studio 2010 28
2 1 2 silverlight tools 29
2 1 3 其他silverlight开发必备工具与可选工具 29
2 2 silverlight开发工具的安装 31
2 3 第一次silverlight开发实践 31
2 3 1 创建silverlight 3应用程序项目 32
2 3 2 编写第一个silverlight应用程序 33
2 3 3 使用silverlight控件实现交互 37
2 4 调试和错误处理 40
2 4 1 设计界面 40
2 4 2 加入托管代码 41
2 4 3 运行和调试计算器程序 41
2 5 使用blend 3辅助silverlight 3开发 43
2 6 绘图和填充颜色 46
2 7 使用blend设计用户登录窗口界面 47
2 8 轻松创建旋转文字动画 51
2 9 创建按钮控件的视觉状态 53
2 10 xap文件与程序集缓存 56
2 11 使用blend草图流程开发演示网站 57
2 12 远程托管你的silverlight应用程序 61
2 13 在iis上部署silverlight应用程序 67
2 14 小结 68
part 2 silverlight开发进阶
第3章 xaml与silverlight编程内功 71
3 1 xaml语言概述 72
3 2 silverlight的xaml分类 72
3 3 silverlight的xaml结构 74
3 3 1 关于xaml命名空间 75
3 3 2 手工编写silverlight usercontrol 76
3 4 声明xaml对象 78
3 5 设置属性 79
3 5 1 使用属性语法 79
3 5 2 使用属性元素语法 80
3 5 3 使用内容元素语法 81
3 5 4 使用集合语法 82
3 5 5 附加属性 83
3 6 silverlight编程模型 84
3 6 1 javascript api编程模型 85
3 6 2 托管api编程模型 85
3 6 3 使用c#托管代码设置属性 86
3 6 4 使用getvalue和setvalue获取和设置属性 88
3 6 5 xamlreader动态加载silverlight对象 89
3 7 dispatchertimer与线程 91
3 7 1 如何在silverlight中创建多线程 91
3 7 2 使用dispatchertimer计时器 93
3 7 3 开发一个唱片商店实例 95
3 8 silverlight全屏支持 99
3 9 silverlight数据绑定与验证 101
3 9 1 数据流方向和更新通知 101
3 9 2 数据验证 103
3 9 3 数据转换 105
3 10 silverlight事件处理 107
3 10 1 silverlight事件类型 107
3 10 2 事件的创建与处理 108
3 10 3 键盘事件 110
3 10 4 鼠标事件 113
3 10 5 路由事件 114
3 10 6 originalsource与sender 117
3 10 7 鼠标拖放示例 119
3 11 小结 121
第4章 布局控件与程序界面设计 123
4 1 silverlight布局系统概述 124
4 2 canvas 124
4 2 1 canvas相对定位 124
4 2 2 canvas嵌套 126
4 2 3 使用边框对象 128
4 2 4 z轴顺序 130
4 3 stackpanel 132
4 4 grid 135
4 4 1 行与列的定义 135
4 4 2 合并单元格 137
4 4 3 自动适应单元格尺寸 139
4 5 使用宽度百分比 141
4 6 边距属性 142
4 7 对齐与拉伸属性 144
4 8 使用c#管理布局对象 147
4 8 1 动态地向canvas添加界面元素 147
4 8 2 动态地控制stackpanel的显示方向 149
4 8 3 使用grid来布局用户登录界面 151
4 9 silverlight自动适应浏览器尺寸 154
4 10 使用布局元素和用户控件设计silverlight网站 155
4 11 小结 160
第5章 矢量绘图能力 161
5 1 形状绘图 162
5 1 1 线条元素 162
5 1 2 rectangle和ellipse元素 164
5 1 3 polyline和polygon 166
5 2 路径绘图 169
5 2 1 路径标记语法 169
5 2 2 绘图指令 170
5 2 3 绘制直线和曲线 171
5 3 几何绘图 173
5 3 1 geometry与shape 173
5 3 2 geometry与path 173
5 3 3 linegeometry 174
5 3 4 rectanglegeometry和ellipsegeometry 175
5 3 5 geometrygroup 176
5 4 pathgeometry 178
5 4 1 pathfigure与pathsegment 179
5 4 2 linesegment对象 180
5 4 3 arcsegment对象 181
5 4 4 beziersegment曲线 182
5 5 用c#绘制图形 183
5 5 1 rectangle和ellipse 183
5 5 2 line、polyline和polygon 185
5 5 3 path和geometrygroup 188
5 5 4 在c#中使用路径标记语法 189
5 5 5 使用绘图元素绘制销售统计图形 190
5 6 小结 194
第6章 画刷与着色 195
6 1 色彩概念 196
6 2 画刷类型 197
6 2 1 纯色画刷 198
6 2 2 线性渐变画刷 199
6 2 3 放射渐变画刷 202
6 3 星光特效示例 204
6 4 在c#中使用画刷 206
6 4 1 使用纯色和渐变画刷 206
6 4 2 制作silverlight取色器 208
6 5 使用自定义色值 210
6 6 小结 212
part 3 运用视觉效果与多媒体功能
第7章 图像与视觉特效 215
7 1 图像对象 216
7 1 1 图像拉伸属性 217
7 1 2 图像画刷 218
7 2 在c#中使用图像 219
7 3 使用bitmapimage的下载事件 220
7 3 1 使用writeablebitmap绘制
位图 221
7 3 2 文本画刷应用 223
7 4 透明特效 224
7 5 透明遮罩 225
7 6 裁剪特效 227
7 7 rendertransform特效 229
7 7 1 translatetransform对象 229
7 7 2 rotatetransform对象 230
7 7 3 scaletransform对象 232
7 7 4 skewtransform对象 233
7 7 5 transformgroup对象 234
7 7 6 matrixtransform对象 236
7 7 7 在c#中应用变形对象 239
7 7 8 silverlight 3d effects 242
7 7 9 关于element-to-elementbinding 249
7 8 运用silverlight 3d特性制作三维空间实例 250
7 9 silverlight 3 effect特效 256
7 9 1 blureffect 256
7 9 2 dropshadoweffect 258
7 10 小结 260
第8章 动画 261
8 1 故事板与事件触发器 262
8 2 silverlight线性插值动画 264
8 2 1 doubleanimation动画 265
8 2 2 coloranimation动画 268
8 2 3 pointanimation动画   270
8 3 silverlight关键帧动画 271
8 3 1 doubleanimationusingkeyframes动画 272
8 3 2 coloranimationusingkeyframes动画 274
8 3 3 pointanimationusingkeyframes动画 276
8 4 使用c#管理动画 278
8 5 实例：结合动画与控件开发跑马灯图片浏览器 280
8 6 小结 285
第9章 多媒体 287
9 1 多媒体格式与通讯协议 288
9 1 1 mediaelement支持与不支持的视频和音频格式 288
9 1 2 mediaelement的媒体播放机制 289
9 2 mediaelement对象 290
9 3 视频拉伸模式 291
9 4 mediaelement状态管理 293
9 5 缓冲进度与下载进度 295
9 6 获取和控制播放位置 297
9 7 实例：全功能视频播放器 298
9 8 视频画刷的应用 303
9 9 小结 304
part 4 控件编程与web集成
第10章 silverlight控件 307
10 1 uielement和control概述 308
10 1 1 uielement 308
10 1 2 control 308
10 2 按钮类控件 309
10 2 1 button控件 309
10 2 2 hyperlinkbutton控件 311
10 3 选择控件 312
10 3 1 checkbox控件 312
10 3 2 radiobutton控件 314
10 3 3 combobox控件 317
10 3 4 listbox控件 320
10 3 5 slider控件 324
10 4 日期显示和选择类控件 326
10 4 1 calendar控件 326
10 4 2 datepicker控件 328
10 5 信息显示控件 329
10 5 1 textblock控件 330
10 5 2 progressbar控件 331
10 5 3 tooltipservice 333
10 6 文本显示和编辑控件 334
10 6 1 textbox控件 335
10 6 2 passwordbox控件 337
10 7 数据显示 338
10 7 1 datagrid控件 338
10 8 布局和元素控件 343
10 8 1 gridsplitter控件 343
10 8 2 scrollviewer控件 345
10 8 3 tabcontrol控件 346
10 9 silverlight 3控件 347
10 9 1 label与中文字体对照 347
10 9 2 autocompletebox 349
10 9 3 datapager 350
10 9 4 treeview 352
10 10 控件样式模板 355
10 10 1 样式定义 355
10 10 2 样式的作用域 357
10 10 3 使用控件模板 358
10 10 4 使用视觉状态管理vsm 362
10 10 5 视觉状态迁移(visualtransition) 365
10 11 小结 367
第11章 silverlight、html与javascript三者交互 369
11 1 silverlight对象模型与dom 370
11 2 获取silverlight插件的错误信息 372
11 3 在silverlight中获取初始化参数和网页参数 373
11 4 silverlight捕获浏览器信息 375
11 5 silverlight操作html元素 377
11 5 1 html元素操作silverlight对象 378
11 5 2 使用httputility类 379
11 5 3 使用document cookies读写cookie 381
11 5 4 使用htmlpage window类 382
11 6 在silverlight中调用javascript 385
11 7 使用javascript调用silverlight 388
11 8 小结 390
part 5 silverlight高级特性与案例分析
第12章 数据访问、远程通信与 silverlight 3高级应用实例 393
12 1 数据访问与远程通信 394
12 1 1 webclient 394
12 1 2 webclient与xmlreader 395
12 1 3 webrequest 399
12 1 4 实现跨域访问 401
12 1 5 silverlight调用wcf服务 402
12 2 实例：使用本地消息通讯功能制作聊天程序 407
12 3 实例：silverlight socket通信 410
12 3 1 socket服务端控制台 410
12 3 2 silverlight客户端 416
12 4 isolated storage独立存储 419
12 4 1 操作目录和文件 419
12 4 2 存储空间扩容 425
12 4 3 使用独立存储配置 426
12 5 文件打开对话框与文件上传 429
12 6 使用保存文件对话框 434
12 7 启用silverlight应用程序库缓存 437
12 8 实例：创建silverlight out of brower应用程序 438
12 9 使用托管代码安装和更新离线应用程序 442
12 10 应用控件截图功能 444
12 11 silverlight 3 easing动画集合 446
12 12 使用墨迹画笔inkpresenter 455
12 13 运用deepzoom特效 457
12 13 1 使用composer创建deepzoom资源 458
12 13 2 使用multiscaleimage引用deepzoom 461
12 13 3 使用子窗口控件 463
12 13 4 使用silverlight控件导航 467
12 14 小结 473
第13章 silverlight应用扩展与高级实例 475
13 1 linq数据操作 476
13 1 1 linq查询实体对象集 476
13 1 2 linq开发小实例 477
13 2 linq操作数据库 478
13 2 1 建立数据库环境 478
13 2 2 sql server类型与 net数据类型的映射表对比 480
13 3 linq查询 481
13 4 操作数据库数据(增删改) 482
13 4 1 添加记录 482
13 4 2 修改记录 483
13 4 3 删除记录 483
13 5 多表查询 484
13 6 操作xml数据 486
13 7 silverlight的可视树与linq应用 488
13 7 1 如何遍历可视树 488
13 7 2 使用linq条件查询可视树元素 490
13 8 实例：以linq、wcf与datagrid控件制作数据管理系统 491
13 8 1 使用wcf与linq取回数据集合填充datagrid控件 492
13 8 2 在自定义列中添加图片控件 495
13 8 3 自定义datagrid自动生成列 496
13 8 4 结合linq、wcf和datagrid制作用户管理系统 499
13 9 使用 net ria service进行数据库通讯 508
13 9 1 创建ado net entity model与domainservice 509
13 9 2 取回数据填充到datagrid控件并实现明细显示 511
13 9 3 使用domaindatasource和datapager实现分页加载数据 513
13 9 4 使用silverlight toolkit扩展组件 515
13 9 5 安装silverlight toolkit开发包 516
13 9 6 使用silverlight toolkit的主题控件换肤 527
13 10 小结 534
第14章 silverlight xml留言簿实例 535
14 1 silverlight留言簿功能概述 536
14 2 模块划分与xml数据格式 537
14 3 创建用户留言实体类 538
14 4 创建web服务与linq、xml文件操作 539
14 5 程序界面与功能逻辑代码 541
14 6 留言簿程序运行界面展示 552
14 7 留言簿功能列表 553
14 8 小结    554
前言
Silverlight称为“银光”，它是如今互联网RIA技术领域中的新宠，随着Silverlight版本的不断进化，其技术已经日趋成熟和健壮，并以其开放式的界面语言——XAML，优雅的编程语言——C#、Visual Basic、Iron Python、Ruby等，吸引了国内外大批程序员的目光。 
在如今的Web 2 0发展大潮中，优异的交互性体验是提高用户粘度的重要手段，若想在同类产品中脱颖而出，就必须具备更友好的用户界面和更丰富的交互界面。
也许有人会问为什么要用Silverlight，或是Silverlight的优势到底在哪里，其实答案很简单，那就是“User Experience”(用户体验)，用户体验分为不同的Level(级别)，这就好比是你在家里和在影院欣赏一部大片的区别，非常炫目的用户界面和强烈的视觉冲击是增加用户交互性最直接的手段。
如果说Silverlight 2是微软在小试牛刀，那么Silverlight 3 0可以说是Silverlight技术的一个里程碑，本人作为一名Silverlight技术的开发者，看着微软的“银光宝宝”从2007年诞生到今天长大成人，相信和我一样接触过Silverlight 1 0的开发者都经历过很多的无奈，因为1 0版最大的缺憾就是不直接支持中文的显示(在实际应用中需要用户下载字库)、不支持C#语言编程(使用JavaScript项目开发，效率低下，不能够完全面向对象)、控件少得可怜，那时即便您想使用一个TextBox，都要借助于HTML才行，这些问题使不少开发者望洋兴叹。值得欣慰的是这些问题在Silverlight 2/3中已经不存在了，新版本的Silverlight带给我们的是灵活的编程模型、强大的框架库、更丰富的特性类库，让你感觉像使用 NET Framework一样地轻松自如，而且这些强大的功能都被包在一个极小的Silverlight运行库中，这使我们不禁赞叹微软Silverlight核心开发团队的技术实力。
曾有人问我，学习Silverlight 3之前是否要先学习Silverlight 1 0和2 0，我的回答是“不需要”。因为Silverlight的版本更新是一个自我完善和进化的过程，这个道理就如同一个熟悉Windows XP操作系统的人去使用Windows 98一样。
无论你是一名Silverlight应用程序的Developer(开发者)还是一名Designer(设计师)，从本书中都可以了解——Silverlight的强大之处不仅是技术方面，同时也得益于它的高效能开发工具Visual Studio 2008和Expression Studio的开发套件。书中同时以Visual Studio 2008和Expression Blend 3两种工发工具的角度来介绍Silverlight 3的应用程序开发，由浅入深，详细地讲解Silverlight中的灵魂——XAML语言，XAML是构建Silverlight界面的重要语言，由于XAML的内容是开放式的，所以它对搜索引擎提供了良好的支持。
为了提高学习者的兴趣，本书除了对Silverlight的基础知识和高级特性的介绍以外，还提供了大量的实用案例，例如三维空间、产品展示、用户管理系统、LINQ+XML留言簿等Silverlight应用程序。实践证明，基础知识结合案例应用是开发者们快