Chapter01 迈向Silverlight2.0之路 1
1-1 Silverlight的架构 2
1-2 Silverlight的技术内涵 3
1-3 开发Silverlight所需的工具 4
1-3-1 备妥工具 4
1-3-2 安装Visual Studio 2008 SP1专用的Microsoft?SilverlightTM Tools 5
1-3-3 如何使用Silverlight说明文件 6
结语 6
Chapter02 从实战开始学起 7
2-1 使用Visual Studio创建Silverlight应用程序 8
2-2 使用Blend2实现一个简易的视频播放程序 15
2-3 如何设置IIS让Silverlight应用程序顺利被下载执行 19
结语 20
Chapter03 Silverlight应用程序的创建、运行、拆分与部署 21
3-1 了解Silverlight2.0应用程序的组成结构 22
3-2 学习应用程序类 24
3-3 如何呈现Silverlight应用程序的主画面 25
3-4 如何创建Silverlight应用程序组件 26
3-5 如何将应用程序封装文件(.xap)存放在Debug或Release文件夹中 28
3-6 如何使用Silverlight控件运行Silverlight应用程序 30
范例1 使用Silverlight控件来加载并运行一个Silverlight时钟 31
范例2 使用Silverlight控件来加载并运行XAML文件 33
范例3 使用多个Silverlight控件来运行多个Silverlight应用程序 33
范例4 结合使用AJAX Control Toolkit与Silverlight控件 35
3-7 如何让Silverlight应用程序固定显示在浏览器的中央 37
3-8 如何让Silverlight控件的背景色成为透明的 38
范例5 示范将Silverlight控件的背景色设置为透明的 39
3-9 HTML网页如何加载与运行Silverlight应用程序 40
范例6 示范如何使用<object>标记来执行Silverlight应用程序 40
3-10 如何使用Silverlight类库组件 42
3-10-1 如何创建内含在应用程序封装文件(.xap)之内的类库组件 42
3-10-2 创建位于应用程序封装文件(xap)之外的类库组件并在运行时动态加载 49
范例7 在运行时动态加载Silverlight类库组件并呈现其中的用户界面 49
3-11 如何拆分与部署Silverlight应用程序—重要!! 54
3-12 如何使用应用程序资源 69
3-12-1 使用相同组件中的资源文件 69
范例8 示范如何使用资源文件 71
3-12-2 使用其他组件中的资源文件 73
范例9 示范如何在Silverlight应用程序中使用类库组件中的资源文件 73
3-12-3 使用相同封装或其他封装中的内容文件 76
范例10 示范如何使用相同封装与其他封装中的内容文件 77
3-12-4 网站的源文件 80
结语 82
Chapter04 开发人员必学的应用程序服务 83
4-1 应用程序的生存期 84
4-2 学习使用应用程序类的Startup事件 84
4-3 学习使用初始化参数 85
范例1 示范使用初始化参数来指定Silverlight应用程序的起始画面 86
范例2 示范在运行阶段动态设置初始化参数来指定Silverlight应用程序的起始画面 88
范例3 示范传递多个初始化参数 91
范例4 示范通过查询字符串来指定初始化参数 93
4-4 学习如何动态加载并显示特定的Silverlight应用程序 95
范例5 Silverlight应用程序封装随选运行界面 95
4-5 学习使用应用程序类的Exit事件 97
4-6 学习使用应用程序范围的资源 98
范例6 示范如何使用应用程序范围的样式与模板 98
4-7 学习处理未处理的异常 102
范例7 示范如何处理未处理的异常 103
4-8 学习取得当前的Silverlight应用程序 105
4-9 学习取得Silverlight插件的实例 105
范例8 示范如何取得Silverlight应用程序封装的路径 106
范例9 示范当浏览器窗口的大小改变时,动态取得Silverlight插件中内容区域的大小 107
Chapter05 学习设计用户界面 109
5-1 用户界面的组成与内涵 110
5-2 如何创建一个XAML界面 112
5-3 为什么需要x:Class属性设置 112
5-4 应该使用哪一种工具来设计XAML界面 113
5-5 如何定位与配置XAML对象 114
5-6 学习使用Grid对象 114
范例1 示范如何使用Grid对象来排列XAML对象 115
5-7 学习使用StackPanel对象 118
范例2 示范使用StackPanel对象 118
5-8 学习使用Canvas对象 120
5-9 学习使用Border对象 120
范例3 示范如何使用Border对象来划分界面区域 121
5-10 学习使用边界与对齐属性 124
范例4 示范如何使用边界与对齐属性 124
5-11 学习设置XAML对象的Z次序 127
范例5 示范如何动态调整XAML对象的Z次序 127
范例6 示范如何将用户单击的照片移至最前方 128
5-12 如何在不同的XAML界面之间导航 131
范例7 示范如何在不同的XAML界面间导航 131
范例8 示范如何创建一个更系统化的导航界面 133
结语 138
Chapter06 学习图案、画笔与转换 139
6-1 学习绘制图案 140
6-1-1 学习Ellipse、Rectangle与Line对象 140
6-1-2 学习Polygon、Polyline与Path对象 141
6-2 图案也是对象 143
范例1 示范如何动态创建Ellipse对象并实现鼠标事件 143
范例2 示范结合动画来动态创建Line对象,以便形成连续绘图的效果 147
6-3 学习使用画笔 149
6-3-1 学习纯色画笔 150
范例3 示范如何使用各种颜色表示法来设置颜色 150
6-3-2 学习线性渐变画笔与径向渐变画笔 151
范例4 示范如何使用线性渐变画笔与径向渐变画笔 152
6-3-3 学习图像画笔 153
范例5 示范如何使用图像画笔 153
范例6 示范如何使用图像画笔来填充图像和文本 154
范例7 示范结合使用Path对象与图像画笔 155
6-3-4 学习视频画笔 156
范例8 示范如何使用视频画笔来绘制文本 157
范例9 示范MediaElement控件与VideoBrush的关联性 157
6-4 学习以编程方式创建画笔 159
范例10 通过编程方式动态创建线性渐变画笔与画笔动画 159
范例11 通过编程方式动态创建径向渐变画笔、应用画笔转换并创建画笔动画 160
范例12 动态创建图像画笔来制作富有创意的相册 164
6-5 学习常用的图形属性 167
6-5-1 学习Opacity属性 167
范例13 示范如何设置图案与图片的透明度 167
6-5-2 学习Visibility属性 168
6-5-3 学习OpacityMask属性 168
范例14 示范如何在图案与图片上应用透明度屏蔽 169
6-5-4 学习Clip属性 169
范例15 示范如何裁切图案与图片 169
6-6 学习使用转换(Transform)—非常重要!! 170
6-6-1 如何旋转对象 170
范例16 文本旋转示范 170
范例17 示范如何指定文本的旋转中心 170
6-6-2 如何缩放对象的大小 171
范例18 文本缩放示范 171
6-6-3 如何扭曲对象 172
范例19 文本扭曲示范 172
6-6-4 如何平移对象位置 173
6-6-5 如何为对象应用矩阵转换效果 173
范例20 矩阵转换示范 174
6-6-6 如何将对象分组以便同时应用多种转换效果 175
范例21 组转换使用示范 176
6-7 善用Blend2来应用转换 177
6-8 学习以编程方式创建转换 179
范例22 通过编程方式动态创建自动播放相册并应用缩放转换 180
范例23 示范如何通过编程方式来创建多重转换 184
结语 188
Chapter07 学习使用动画 189
7-1 使用Blend2实现一个简易的动画 190
范例1 制作一个“下载中”的动画 197
7-2 什么是脚本 197
7-3 使用Blend2维护动画 198
范例2 爆破的电视墙 199
范例3 单击即水平翻转迎向前的视频界面 201
7-4 学习From/To/By动画 205
范例4 显示日期的时钟 206
7-5 学习以交互方式控制动画 208
范例5 可显示星期的时钟 209
范例6 制作一个照片由上至下坠落的自动播放相册 209
7-6 学习使用Storyboard对象实现定时器 212
范例7 声光效果俱佳的自动播放相册 213
7-7 学习使用Dispatcher Timer类实现定时器 214
范例8 定时随机更新照片的自动播放相册 214
范例9 具有旋转效果的书籍介绍界面 216
7-8 使用Visual C#程序代码创建动画 218
结语 218
Chapter08 学习使用控件(上) 219
8-1 学习控件的内容模型 220
8-2 学习使用TextBlock控件 222
B-2-1 如何指定所要显示的文本 222
范例1 示范如何使用TextBlock控件来显示文本 223
B-2-2 如何更改TextBlock中个别文本的大小 223
范例2 让TextBlock中各个文本拥有不同的大小与样式 223
8-2-3 如何让同一个TextBlock应用不同的画笔 223
范例3 示范为文本应用纯色画笔与线性渐变画笔 224
范例4 示范为文本应用图像画笔 224
8-2-4 如何让文本换行 224
范例5 文本换行示范 225
8-2-5 如何强制文本换行 225
范例6 示范强制文本换行 225
8-3 学习使用TextBox控件 226
范例7 示范创建各种形式的TextBox控件 226
范例8 制作一个XML文件的数据查询界面(使用LINQ to XML) 226
范例9 制作一个SQLServer数据库的数据查询界面(使用.ashx) 230
范例10 制作一个SQL Seer数据库的数据查询界面(使用WCF服务) 236
8-4 学习使用PasswordBox控件 240
8-5 学习使用Button控件 240
范例11 示范制作各种外观样式的按钮 241
范例12 示范使用Button控件的ClickMode属性 244
8-6 学习使用HyperlinkButton控件 245
范例13 示范创建各种外观样式的超链接 245
范例14 示范使用Navigate与PopupWindow方法来重定向网页 246
8-7 学习使用RepeatButton控件 248
范例15 示范使用RepeatButton控件 248
8-8 学习使用Tooltip控件 249
范例16 示范为控件添加各种外观样式的工具提示文字 249
8-9 学习使用Image控件 251
范例17 制作一个可逐张导航与顺序播放的相册(使用.ashx来提取网站中的照片文件) 252
范例18 制作一个将照片内含在压缩文件(.zip)中的相册 258
范例19 示范从SQLServer数据库提取与显示二进制图像数据 261
8-10 学习使用CheckBox控件 264
范例20 示范创建CheckBox控件 264
8-11 学习使用ToggleButton控件 266
8-12 学习使用RadioButton控件 266
范例21 示范创建RadioButton控件 266
范例22 示范创建一个双目标的SQLServer数据库查询界面 268
结语 272
Chapter09 学习使用控件(下) 273
9-1 学习使用GridSplitter控件 274
范例1 示范使用GridSplitter控件来动态调整Grid容器对象的行高与列宽 274
9-2 学习使用Calendar控件 278
范例2 示范以编程方式来操作Calendar控件 279
范例3 示范搭配使用TextBox控件与Calendar控件 282
9-3 学习使用DatePicker控件 283
范例4 示范使用DatePicker控件来输入日期 284
9-4 学习使用ListBox控件—非常特别! 286
9-4-1 使用ListBoxltem定义选项 286
范例5 示范使用ListBoxltem定义ListBox控件的选项 286
范例6 示范以编程方式添加选项 287
9-4-2 直接使用FrameworkElement对象作为选项—重要!! 289
范例7 示范以多样化的FrameworkElement对象作为ListBox的选项 290
9-4-3 使用集合作为ListBox的选项来源—重要!! 293
范例8 示范以声明方式将资源中的集合对象赋给ItemsSource属性 293
范例9 示范以编程方式将集合对象赋给ItemsSource属性 296
范例10 示范在ItemTemplate中使用DataTemplate来指定对象的哪些属性要作为选项—重要!! 297
范例11 实现一个XML文件的数据搜索界面 299
范例12 实现一个网站文件夹随选的照片查看界面—重要!! 302
9-5 学习使用ComboBox控件—非常特别 311
范例13 示范创建一个部门数据查看界面 311
范例14 实现一个网站文件夹随选的照片查看界面 313
9-6 学习使用ProgressBar控件 314
范例15 示范制作下载大型图片时的进度条 314
9-7 学习使用Popup控件 317
范例16 制作一个弹出窗口来显示照片信息 317
9-8 学习使用ScrollViewer控件 320
范例17 示范将用户打开的图像文件置于一个滚动区域中 320
范例18 示范将用户打开的文本文件置于一个滚动区域中 322
9-9 学习使用Slider控件 324
范例19 示范使用滑块来调整图片的转换设置 325
范例20 示范使用滑块来调整相册的照片播放速度 327
范例21 示范使用滑块来标识与调整视频影片的播放点和音量 331
9-10 学习使用TabControl控件 333
范例22 示范使用TabControl控件制作选项卡 334
范例23 示范动态创建一个TabControl控件 340
结语 342
Chapter10 学习功能超强的DataGrid控件 343
10-1 了解DataGrid控件所属的组件 344
10-2 如何设置DataGrid控件的数据源 344
范例1 示范创建自动生成列的DataGrid控件 345
范例2 示范使用XAML声明方式来自定义DataGrid控件的列 350
范例3 示范以编程方式创建DataGrid控件并自定义其列 352
范例4 示范使用DataGridTemplateColumn来自定义DataGrid控件的列 355
范例5 示范使用AutoGeneratingColumn事件处理程序来自定义DataGrid控件的列 358
范例6 示范以声明方式将资源中的集合对象赋给LtemsSource属性 362
10-3 如何在DataGrid控件中使用ComboBox来编辑数据—重要!! 362
10-4 如何设置与显示DataGrid控件中的明细数据区段 366
范例7 示范定义明细数据区段与其显示时机,以及设置列标题的样式 366
范例8 示范以资源的形式来定义明细数据区段与列标题样式 376
范例9 示范为自动生成列的DataGrid控件定义明细数据区段与标题样式 377
10-5 学习进一步自定义DataGrid控件的外观与运作模式 377
范例10 示范以互动方式设置DataGrid控件的外观 378
10-6 如何在DataGrid控件中添加与删除数据记录 380
范例11 创建一个具备添加、修改与删除功能的DataGrid控件(使用自定义的数据集合) 381
范例12 创建一个具备添加、修改与删除功能的DataGrid控件(使用WCF服务返回的数据集合) 386
结语 394
Chapter11 学习动态创建控件 395
11-1 实现一个动态图片工具栏 396
11-2 实现一个水平滚动缩图相册 407
结语 422
Chapter12 学习使用样式与模板来自定义控件的外观与运作方式 423
12-1 使用Expression Blend 2 SP1创建圆形按钮模板 424
12-2 使用Expression Blend 2 SP1创建多媒体按钮模板 435
12-3 使用控件的默认模板来创建新的模板 445
12-4 通过修改默认模板的副本来创建一个自定义的滑块控件 447
12-5 学习使用样式与画笔资源 452
范例1 示范使用样式与画笔资源设置Button控件的外观 454
范例2 示范使用画笔资源创建不同色系的控件 456
范例3 示范制作双色系的按钮模板 458
12-6 使用Expression Blend 2 SP1来创建与触发可视化状态 459
结语 468
Chapter13 学习使用数据绑定 469
13-1 数据绑定的基本原理 470
13-2 如何创建数据绑定 470
13-2-1 使用声明方式的XAML语法进行数据绑定 471
范例1 示范以声明方式的XAML语法进行控件的数据绑定 477
范例2 示范容器对象与子对象的数据绑定 477
13-2-2 使用编程方式进行数据绑定 478
范例3 结合声明与编程两种方式进行数据绑定 479
范例4 实现一个数据导航界面 482
13-3 如何绑定至集合对象 485
范例5 实现一个SQLServer数据库的数据导航界面 485
范例6 实现一个主要数据/明细数据界面 490
13-4 如何验证数据 492
范例7 示范双向绑定时的数据验证 493
13-5 如何转换数据 498
范例8 实现一个转换器来转换绑定的源数据 499
范例9 示范传递不同的格式化字符串与文化特性给转换器 502
结语 504
Chapter14 学习使用多媒体功能 505
14-1 学习创建与使用MediaElement控件 506
14-2 学习制作交互式多媒体播放界面 508
14-2-1 必须了解的成员 508
14-2-2 MediaElement控件的状态 509
14-2-3 如何让多媒体文件自动重复播放 511
范例1 实现一个能够自动重复播放的视频界面 511
范例2 示范实现一个交互式视频播放界面 512
范例3 示范实现一个电视机外观的交互式视频播放界面 517
14-3 学习制作不规则视频播放界面 525
范例4 实现一个不规则的MediaElement控件 526
14-4 学习使用SetSource方法 527
范例5 示范使用WebClient对象异步下载视频文件并进行播放 527
14-5 学习使用时间线标记(Timeline Markers) 529
范例6 示范使用时间线标记 529
结语 530
Chapter15 如何访问远程主机资源 531
15-1 HTP通信与安全 532
15-2 何谓同一域 532
15-3 何谓跨域 533
15-3-1 探讨Silverlight调用跨域Web服务的安全性 535
15-3-2 探讨Silverlight跨域策略文件 537
15-3-3 探讨Adobe Flash/Flex的跨域策略文件 539
15-4 HTP通信协议使用时机 540
15-5 如何使用Proxy类调用HTTP 540
15-5-1 如何为既有的网站或网页应用程序添加“启用Silverlight功能的WCF服务” 541
范例1 异步调用WCF服务的方法来转换华氏温度与摄氏温度 542
范例2 异步调用WCF服务来取得XML格式的天气信息 546
范例3 以动画方式显示WCF服务所回传的XML格式的天气信息 548
范例4 指定WCF服务的绑定属性,然后调用WCF服务 551
范例5 使用WCF服务查询SQLServer数据库 553
范例6 使用DataGrid显示WCF服务回传的数据 554
范例7 如何使用ASP,NET应用程序服务—重要!! 557
范例8 使用WCF服务所回传的结果绘制统计图表 569
范例9 使用WCF服务从SQLServer数据库取得并更新数据 574
15-5-2 异步调用.asmx的Web服务 580
范例10 如何异步调用Web服务(.asmx)的方法 580
范例11 调用不同域的Web服务(.asmx)来取得XML格式的天气信息 582
范例12 调用Microsof? Live Search的Web服务(.asmx)来搜索网页 584
15-5-3 异步调用ADONET数据服务 588
范例13 异步调用ADONET数据服务取得并更新数据 588
结语 596
Chapter16 学习鼠标操控技巧 597
16-1 学习捕捉鼠标滚轮事件 598
16-2 学习鼠标拖放操作 600
范例1 示范以鼠标拖动方式来翻转图片 600
16-3 学习捕捉鼠标右键事件 605
范例2 示范捕捉鼠标右键事件 605
附录A 范例光盘使用说明 607
A-1 使用本书范例的注意事项 608
A-2 安装SQL Server 2005 Express Edition 608
A-3 安装范例数据库并复制范例网站 608
A-4 执行Silverlight应用程序或XAML范例 609