《深入理解Windows Phone 8.1 UI控件编程》

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

目录如下:

《深入理解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控件编程》,布布扣,bubuko.com

时间: 2024-10-12 22:14:45

《深入理解Windows Phone 8.1 UI控件编程》的相关文章

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

IOS测试框架之:athrun的InstrumentDriver源码阅读笔记

athrun的InstrumentDriver源码阅读笔记 作者:唯一 athrun是淘宝的开源测试项目,InstrumentDriver是ios端的实现,之前在公司项目中用过这个框架,没有深入了解,现在回来记录下. 官方介绍:http://code.taobao.org/p/athrun/wiki/instrumentDriver/ 优点:这个框架是对UIAutomation的java实现,在代码提示.用例维护方面比UIAutomation强多了,借junit4的光,我们可以通过junit4的

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

源码阅读笔记 - 1 MSVC2015中的std::sort

大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格式化,去掉或者展开用于条件编译或者debug检查的宏,依重要程度重新排序函数,但是不会改变命名方式(虽然MSVC的STL命名实在是我不能接受的那种),对于代码块的解释会在代码块前(上面)用注释标明. template<class _RanIt, class _Diff, class _Pr> in

CI框架源码阅读笔记5 基准测试 BenchMark.php

上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架. 从本篇开始,将进一步去分析各组件的实现细节,深入CI核心的黑盒内部(研究之后,其实就应该是白盒了,仅仅对于应用来说,它应该算是黑盒),从而更好的去认识.把握这个框架. 按照惯例,在开始之前,我们贴上CI中不完全的核心组件图: 由于BenchMa

CI框架源码阅读笔记2 一切的入口 index.php

上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里这次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中

Apache Storm源码阅读笔记

欢迎转载,转载请注明出处. 楔子 自从建了Spark交流的QQ群之后,热情加入的同学不少,大家不仅对Spark很热衷对于Storm也是充满好奇.大家都提到一个问题就是有关storm内部实现机理的资料比较少,理解起来非常费劲. 尽管自己也陆续对storm的源码走读发表了一些博文,当时写的时候比较匆忙,有时候衔接的不是太好,此番做了一些整理,主要是针对TridentTopology部分,修改过的内容采用pdf格式发布,方便打印. 文章中有些内容的理解得益于徐明明和fxjwind两位的指点,非常感谢.

CI框架源码阅读笔记4 引导文件CodeIgniter.php

到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入

jdk源码阅读笔记之java集合框架(二)(ArrayList)

关于ArrayList的分析,会从且仅从其添加(add)与删除(remove)方法入手. ArrayList类定义: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } span.s1 { color: #931a68 } public class ArrayList<E> extends AbstractList<E> implements List<E> ArrayList基本属性: /** *

dubbo源码阅读笔记--服务调用时序

上接dubbo源码阅读笔记--暴露服务时序,继续梳理服务调用时序,下图右面红线流程. 整理了调用时序图 分为3步,connect,decode,invoke. 连接 AllChannelHandler.connected(Channel) line: 38 HeartbeatHandler.connected(Channel) line: 47 MultiMessageHandler(AbstractChannelHandlerDelegate).connected(Channel) line: