第一部分 基础 3
1 启程 3
1.1 手工嵌入Silverlight控件 8
1.2 让Silverlight.js为你卖苦力 11
1.2.1 Silverlight.createObject 12
1.2.2 Silverlight.createObjectEx 13
1.2.3 把它们拼合 14
1.3 理解宿主选项 17
1.3.1 source 17
1.3.2 属性 19
1.3.3 事件属性 24
1.4 以编程方式与Silverlight控件交互 27
1.4.1 Settings属性 28
1.4.2 Content属性 29
1.4.3 其他成员 30
1.5 小结 31
2 XAML 33
2.1 元素和特性 34
2.2 XML命名空间 35
2.3 属性元素 36
2.4 类型转换器 37
2.5 对象元素的子元素 38
2.5.1 内容属性 38
2.5.2 集合中的项 39
2.6 附加属性 40
2.7 XAML与JavaScript的关系 41
2.7.1 与XAML中定义的元素交互 42
2.7.2 动态生成XAML 48
2.8 小结 51
第二部分 创建静态内容 55
3 形状、直线和曲线 55
3.1 基本形状 56
3.1.1 Rectangle 56
3.1.2 Ellipse 57
3.1.3 Polygon 59
3.2 直线与曲线 61
3.2.1 Line 61
3.2.2 Polyline 62
3.2.3 Path 63
3.3 几何形状 63
3.3.1 用几何形状作剪辑 64
3.3.2 PathGeometry 65
3.3.3 GeometryGroup 68
3.3.4 用字符串表示几何形状 70
3.4 笔画 72
3.4.1 线帽 73
3.4.2 线连接 73
3.4.3 短线 74
3.5 小结 75
4 文本 77
4.1 定制文本的显示 78
4.1.1 字体基本属性 78
4.1.2 其他自定义设置 81
4.1.3 获得TextBlock的尺寸 82
4.2 创建富文本的内容 83
4.2.1 Run 83
4.2.2 LineBreak 85
4.3 使用自定义字体 86
4.3.1 下载自定义字体 86
4.3.2 使用Glyphs元素 88
4.3.3 将文本转换为Path 90
4.4 小结 90
5 笔刷与图像 93
5.1 SolidcolorBrush 94
5.2 LinearGradientBrush 95
5.3 RadialGradientBrush 99
5.4 ImageBrush和Image 101
5.5 VideoBrush 106
5.6 把笔刷当作透明遮罩使用 108
5.7 小结 109
6 定位元素及变换元素 111
6.1 关于Canvas 111
6.1.1 定位元素 112
6.1.2 把元素放在其他元素的后面或前面 115
6.1.3 控制尺寸与剪辑 116
6.1.4 用多个Canvas元素创建可维护的用户界面 118
6.2 应用变换 121
6.2.1 RotateTransform 122
6.2.2 ScaleTransform 124
6.2.3 SkewTransform 128
6.2.4 TranslateTransform 129
6.2.5 MatrixTransform 130
6.2.6 组合变换 131
6.3 小结 133
第三部分 赋予内容生命 137
7 响应输入事件 137
7.1 Silverlight事件相关知识 137
7.1.1 事件处理程序 138
7.1.2 向事件添加事件处理程序 139
7.2 鼠标事件 142
7.2.1 边界测试与命中测试 146
7.2.2 深入理解鼠标指针 146
7.2.3 事件冒泡 148
7.2.4 捕获鼠标 150
7.2.5 把它们拼合:创建一个滚动条 152
7.2.6 使用Silverlight的手写笔功能 160
7.3 键盘事件 164
7.3.1 基础知识 165
7.3.2 找出按了哪个键 166
7.4 使用全屏模式 169
7.5 小结 171
8 按需下载内容 173
8.1 初始化一次下载 173
8.2 使用已下载的内容 174
8.3 同时下载一个.ZIP文件中的多个项目 176
8.4 显示进度条 177
8.4.1 简单的进度条 177
8.4.2 定制进度条 180
8.5 小结 183
9 动画 185
9.1 动画 186
9.1.1 “手工”执行动画 186
9.1.2 用Silverlight执行动画 189
9.2 用JavaScript与动画交互 194
9.2.1 控制Storyboard的函数 194
9.2.2 Completed事件 196
9.3 编辑动画时间线 196
9.3.1 BeginTime 196
9.3.2 SpeedRatio 197
9.3.3 AutoReverse 197
9.3.4 RepeatBehavior 198
9.3.5 FillBehavior 199
9.4 进一步了解Storyboard 199
9.4.1 设置目标属性 199
9.4.2 指定目标对象 202
9.4.3 把Storyboard当作动画 204
9.5 关键帧动画 207
9.5.1 线性关键帧 207
9.5.2 样条关键帧 208
9.5.3 离散关键帧 209
9.6 小结 211
10 音频和视频 213
10.1 用MediaElement播放音频和视频 215
10.1.1 Source属性 215
10.1.2 视觉效果 216
10.1.3 针对音频的功能 217
10.1.4 针对视频的功能 217
10.1.5 累进下载与流 218
10.2 用JavaScript控制音频和视频 219
10.2.1 改变媒体的状态 220
10.2.2 基本媒体事件 220
10.2.3 音频和视频的定位 220
10.2.4 使用时间线标记器 221
10.2.5 创建一个媒体播放器用户界面 223
10.3 使用Expression Encoder 225
10.4 小结 226