《深入理解Windows Phone 8.1 UI控件编程》本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画、掌握布局原理、列表虚拟化原理、高性能列表实现、图表编程、控件原理等。

 全书源代码免费下载:

http://vdisk.weibo.com/s/zt_pyrfNHoezI

试读章节会在博客园持续更新:

[WP8.1UI控件编程]Windows Phone XAML页面的编译

[WP8.1UI控件编程]Windows Phone自定义布局规则

[WP8.1UI控件编程]Windows Phone理解和运用ItemTemplate、ContentTemplate和DataTemplate

[WP8.1UI控件编程]Windows Phone动画方案的选择

[WP8.1UI控件编程]SemanticZoom控件实现分组列表

[WP8.1UI控件编程]Windows Phone VirtualizingStackPanel、ItemsStackPanel和ItemsWrapGrid虚拟化排列布局控件

[WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化

目录如下:

《深入理解Windows Phone 8 .1 UI控件编程》目录

第1深入解析程序界面

1.1 XAML的原理

1.1.1 XAML的概念

1.1.2 XAML页面的编译

1.1.3 动态加载XAML

1.2 XAML的树结构

1.2.1 可视化树

1.2.2 VisualTreeHelper类

1.2.3 遍历可视化树

1.2.4 可视化树应用示例:实现ListBox控件分页加载

1.3 路由事件

1.3.1 Windows Phone事件

1.3.2 路由事件的概念

1.3.4 路由事件原理

1.3.5 路由事件的作用和演示

1.4框架和页面

1.4.1 框架页面结构

1.4.2 页面导航

1.4.3 框架的应用示例:自定义弹出窗口

1.5 UI线程

第2样式和模板

2.1 样式

2.1.1 创建样式

2.1.2 样式继承

2.1.3 以编程方式设置样式

2.1.4 样式文件

2.1.5 系统主题

2.1.6 主题资源

2.1.7 自定义主题

2.2 模板

2.2.1 控件模板(ControlTemplate)

2.2.2 ContentControl和ContentPresenter

2.2.3 视觉状态管理(VisualStatesManager)

2.2.4 数据模板(DataTemplate)

2.2.5 ItemTemplate、ContentTemplate和DataTemplate

2.2.6 数据模板的使用

2.2.7 读取和更换数据模板

第3布局原理

3.1 布局原理

3.1.1 布局的意义

3.1.2 系统的布局面板

3.1.3 布局系统

3.1.4 布局系统的重要方法和属性

3.1.5 测量和排列的过程

3.1.6 多分辨率的适配布局

3.2 自定义布局规则

3.2.1 创建布局类

3.2.2 实现测量过程

3.2.3 实现排列过程

3.2.4 应用布局规则

第4图形绘图

4.1 图形原理

4.1.1 图形中常用的结构

4.1.2 画图相关的类

4.1.3 基础的图形形状

4.2 Path图形

4.2.1 两种Path图形的创建方法

4.2.2 使用简单的几何图形来创建Path

4.2.3 使用PathGeometry来创建Path

4.2.4 使用路径标记语法创建Path

4.2.5 使用Path实现自定义图形

4.2.6 利用Expression Blend工具创建Path图形

4.3 画刷

4.3.1 SolidColorBrush画刷

4.3.2 LinearGradientBrush画刷

4.3.3 ImageBrush画刷

4.4 图形裁剪

4.4.1 使用几何图形进行剪裁

4.4.2 对布局区域进行剪裁

第5图表编程

5.1动态生成折线图和区域图

5.1.1折线图和区域图原理

5.1.2 生成图形逻辑封装

5.2 实现饼图控件

5.2.1 自定义饼图片形形状

5.2.2 封装饼图控件

5.3 线性报表

5.3.1 实现图形表格和坐标轴

5.3.2 定义线性数据图形类

5.3.3 实现图例

5.3.4 实现线性报表

5.4 QuickCharts图表控件库解析

5.4.1 QuickCharts项目结构分析

5.4.2 饼图图表PieChart的实现逻辑

5.4.3 连续图形图表SerialChart的实现逻辑

第6变换特效和三维特效

6.1 变换特效

6.1.1 变换的原理二维变换矩阵

6.1.2 平移变换TranslateTransform

6.1.3 旋转变换RotateTransform

6.1.4 缩放变换ScaleTransform

6.1.5 扭曲变换SkewTransform

6.1.6 组合变换TransformGroup

6.1.7 矩阵变换MatrixTransform

6.2 三维特效

6.2.1 三维坐标体系

6.2.2 三维旋转

6.2.3 三维平移

6.2.4 用矩阵实现三维特效

第7动画编程基础

7.1 动画原理

7.1.1 理解动画

7.1.2 动画的目标属性

7.1.3 动画的类型

7.2 线性插值动画

7.2.1 动画的基本语法

7.2.2 线性动画的基本语法

7.2.3 DoubleAnimation实现变换动画

7.2.4 ColorAnimation实现颜色渐变动画

7.2.5 PointAnimation实现Path图形动画

7.3 关键帧动画

7.3.1 关键帧动画概述

7.3.2 线性关键帧

7.3.3 样条关键帧

7.3.4 离散关键帧

7.4 缓动函数动画

7.4.1 缓动函数动画概述

7 .4.2 BackEase动画

7.4.3 BounceEase动画

7.4.4 CircleEase动画

7.4.5 CubicEase动画

7.4.6 ElasticEase动画

7.4.7 ExponentialEase动画

7.4.8 PowerEase/QuadraticEase/QuarticEase/QuinticEase动画

7.4.9 SineEase动画

7.5 基于帧动画

7.5.1 基于帧动画的原理

7.5.2 基于帧动画的应用场景

7.5.3 基于帧动画的实现

第8动画进阶演练

8.1 动画方案的选择

8.1.1 帧速率

8.1.2 UI线程和构图线程

8.1.3 选择最优的动画方案

8.2 列表动画

8.2.1 实现的思路

8.2.2 使用附加属性控制动画对象

8.2.3 列表切换缓动动画实现

8.2.4 退出页面的三维动画实现

8.2.5 列表动画的演示

8.3 模拟实现微信的彩蛋动画

8.3.1 实现的思路

8.3.2 星星创建工厂

8.3.3 实现单个星星的动画轨迹

8.3.4 封装批量星星飘落的逻辑

8.3.5 星星飘落动画演示

8.4 决斗游戏动画

8.4.1 实现的思路

8.4.2 初始页面的布局

8.4.3 人物走路动画

8.4.4 决斗开枪动画

第9深入解析控件编程

9.1 系统控件原理解析

9.1.1 系统控件分类

9.1.2 系统控件的默认样式

9.1.3 深度改造系统控件

9.2 UserControl自定义控件——水印输入框控件

9.2.1 UserControl自定义控件的原理

9.2.2 创建水印输入框控件

9.2.3 添加水印输入框控件属性和事件的处理

9.2.4 使用水印输入框控件

9.3 从控件基类派生实现自定义控件——全屏进度条控件

9.3.1 创建控件样式

9.3.2 加载样式

9.3.3 全屏进度条的打开和关闭

9.3.4 处理物理返回事件

9.3.5 全屏进度条控件的使用

第10章 Expression Blend工具的使用

10.1 Expression Blend概述

10.1.1 视图

10.1.2 工作区

10.2 主要的面板

10.2.1美工板

10.2.2 资产面板

10.2.3 工具面板

10.2.4 对象和时间线面板

10.2.5 属性面板

10.3 Expression Blend for Windows Phone的特色功能

10.3.1 选择设备的效果

10.3.2 预览 Windows Phone 样式

10.3.3 定义应用程序菜单栏

10.4 Expression Blend绘图

10.4.1 绘图基础

10.4.2 使用“笔”绘制路径

10.4.3 合并路径

10.4.4 实例演练——绘制一个表情图形

10.5 Expression Blend制作动画

10.5.1 情节提要

10.5.2 时间线

10.5.3 Expression Blend的关键帧

10.5.4 实例演练——制作小球掉落反弹动画

第11列表编程

11.1 列表控件的使用

11.1.1 ItemsControl实现最简洁的列表

11.1.2 ListBox实现下拉点击刷新列表

11.1.3 ListView实现下拉自动刷新列表

11.1.4 GridView实现网格列表

11.1.5 SemanticZoom实现分组列表

11.2 虚拟化技术

11.2.1 列表的虚拟化

11.2.2 VirtualizingStackPanel、ItemsStackPanel和ItemsWrapGrid虚拟化排列布局控件

11.2.3 实现横向虚拟化布局

11.2.4 大数据量网络图片列表的异步加载和内存优化

第12章 Toolkit控件库的技术原理分析

12.1 Toolkit控件库项目简介

12.2 CustomMessageBox控件原理解析

12.2.1 CustomMessageBox的调用逻辑

12.2.2 CustomMessageBox的样式和弱引用的使用

12.3 PhoneTextBox控件原理解析

12.3.1 PhoneTextBox的调用逻辑

12.3.2 PhoneTextBox的封装逻辑

12.4 ToggleSwitch控件原理解析

12.4.1 ToggleSwitch的调用逻辑

12.4.2 ToggleSwitch和ToggleSwitchButton的样式

12.4.3 ToggleSwitch对拖拽手势的判断

12.5 ListPicker控件原理解析

12.5.1 ListPicker的调用逻辑

12.5.2 ListPicker控件主要逻辑的分析

12.6 WrapPanel控件原理解析

12.6.1 WrapPanel控件的调用逻辑

12.6.2 WrapPanel布局控件的测量排列逻辑

京东购买地址:http://item.jd.com/11471768.html

《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架的更多相关文章

  1. 读《深入理解Windows Phone 8.1 UI控件编程》1.4.3 框架的应用示例:自定义弹出窗口有感

    前些天买了园子里林政老师的两本 WP8.1 的书籍.毕竟想要学得深入的话,还是得弄本书跟着前辈走的. 今天读到 1.4.3 节——框架的应用示例:自定义弹出窗口这一小节.总的来说,就是弄一个像 Mes ...

  2. 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。

    一 数据储存  1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...

  3. [WP8.1UI控件编程]Windows Phone理解和运用ItemTemplate、ContentTemplate和DataTemplate

    2.2.5 ItemTemplate.ContentTemplate和DataTemplate 在理解ItemTemplate.ContentTemplate和DataTemplate的关系的之前,我 ...

  4. [WP8.1UI控件编程]Windows Phone XAML页面的编译

    1.1.2 XAML页面的编译 Windows Phone的应用程序项目会通过Visual Studio完成XAML页面的编译,在程序运行时会通过直接链接操作加载和解析XAML,将XAML和过程式代码 ...

  5. [WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化

    11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依 ...

  6. [WP8.1UI控件编程]Windows Phone VirtualizingStackPanel、ItemsStackPanel和ItemsWrapGrid虚拟化排列布局控件

    11.2.2 VirtualizingStackPanel.ItemsStackPanel和ItemsWrapGrid虚拟化排列布局控件 VirtualizingStackPanel.ItemsSta ...

  7. [WP8.1UI控件编程]Windows Phone动画方案的选择

    8.1 动画方案的选择 Windows Phone的动画实现方式有线性插值动画(3种类型).关键祯动画(4种类型)和基于帧动画,甚至还有定时器动画,然后动画所改变的UI元素属性可以是普通的UI元素属性 ...

  8. [WP8.1UI控件编程]Windows Phone自定义布局规则

    3.2 自定义布局规则 上一节介绍了Windows Phone的系统布局面板和布局系统的相关原理,那么系统的布局面板并不一定会满足所有的你想要实现的布局规律,如果有一些特殊的布局规律,系统的布局面板是 ...

  9. [WP8.1UI控件编程]SemanticZoom控件实现分组列表

    11.1.5 SemanticZoom实现分组列表 SemanticZoom控件可以让用户实现一种更加高级的列表,这种列表可以对列表的项目进行分组,同时这个SemanticZoom控件会提供两个具有相 ...

随机推荐

  1. Spring中的jar包详解

    下面给大家说说spring众多jar包的特点吧,无论对于初学spring的新手,还是spring高手,这篇文章都会给大家带来知识上的收获,如果你已经十分熟悉本文内容就当做一次温故知新吧.spring. ...

  2. 第六届acm省赛总结(退役贴)

    前言: 这是我的退役贴,之前发到了空间里,突然想到也要在博客里发一篇,虽然我很弱,但是要离开了还是有些感触,写出来和大家分享一下,希望不要见笑.回来看看,这里也好久没有更新了,这一年确实有些懈怠,解题 ...

  3. hdu 1556:Color the ball(线段树,区间更新,经典题)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. [Linux] 解压tar.gz文件,解压部分文件

    遇到数据库无法查找问题原因,只能找日志,查找日志的时候发现老的日志都被压缩了,只能尝试解压了   数据量比较大,只能在生产解压了,再进行查找 文件名为*.tar.gz,自己博客以前记录过解压方法: h ...

  5. W-数据库基础

    数据库系统由三部分组成:数据库(DB).数据库管理系统(DBMS)和数据库应用系统 数据加是用来存储数据的,里面存储两大类数据:用户数据及系统数据/数据字典,具体为系统中的用户以及用户孤权限,各种统计 ...

  6. Debian下安装vim

    问题描述:安装完系统以后,刚要打算开始写程序,发现,vim还没有装,用su -切换到root后 直接运行apt-get install vim,提示插入disc源,然后回车,陷入无法解决的状态. 上网 ...

  7. connot resolve symbol R

    出现这个原因大都是layout里的xml文件出错,就不会自动生成R文件

  8. MATLAB中stem函数用法

    stem(Y) 将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止.如果Y是一个矩阵,则将其每一列按照分隔方式画出. stem(X,Y)在X的指定点处画出数据序列Y.  stem(...,'fil ...

  9. Linux学习笔记(8)Linux常用命令之网络命令

    (1)write write命令用于给指定用户发信息,以Ctrl+D保存结束,所在路径为/usr/bin/write,其语法格式为: write [用户名] 注:只能给在线用户发送. 例:新建ws用户 ...

  10. DOM兼容

    -firstChild  firstElementChild var oFirst = oUl.firstChild || oUl.firstElementChild; -lastChild   la ...