学习Windows Phone手机开发:Tile的使用
MSDN帮助:http://msdn.microsoft.com/en-us/library/hh202948(v=VS.92).aspx
Tile,英文单词的中文意思是砖瓦、瓦片、瓷片的意思,真佩服微软起的这个名字,它是在Windows Phone手机的桌面上呈现一个小方块,它的作用是在桌面上显示一个启动程序的快捷方式,同时可以动态显示一些提示信息。
一)Tile的简单介绍
Tile的正面
Tile的背面
1)小方块的底部可以显示应用程序的名称。
2)小方块的右上角显示一个0-99的数字。
3)小方块的背景图片可以自由设置为尺寸为173*173、jpg或png格式的图片,图片的大小如果不合要求,则会自动缩放。
4)小方块的显示有两面:正面和背面。
正面可以设置:背景图片BackgroundImage、程序标题Title、右上角数字Count;
背面可以设置:背景图片BackBackgroundImage、程序标题BackTitle、内容文字BackContent。
小方块正面和背面的翻转显示是自动的,由系统控制。
5)一个应用程序可以有两个Tile的小方块:一个是默认的主方块(Application Tile),一个是附属的次方块(Secondary Tile)。
Application Tile:程序安装后由用户操作“固定到开始屏幕”(英文为“pin to start”)自动创建,删除时也是由用户在桌面操作删除(手指长按方块然后点击出现的那个小图钉),不能由程序代码来创建或删除。
Secondary Tile:由程序代码来创建和维护,作用与主方块类似,与主方块配合使用,只能添加一个Secondary Tile(即一个应用程序总共最多有两个Tile,一个Application Tile和一个Secondaty Tile),MSDN上的原因描述我也不大明白,估计是怕复杂了拖累系统吧。
6)更新操作:
更新时只更新需要更新的内容即可,不必对所有属性都进行设置,更新操作只对传入的属性信息进行更新。
如果是引用网络上的图片,其大小不能超过80KB,下载图片的过程必须在30秒内完成,否则将不会显示图片,不支持网络协议https。
设置Tile的内容时,至少应该设置正面的背景图片。
设置右上角的数字时,其数值是一个可以为空null的整型,数值0和null都不会显示,即右上角不会显示数字。
二)操作默认的主方块Tile
主方块Tile只能进行更新,更新途径有三种方式。
1)更改应用程序的属性。
鼠标双击应用程序的Properties文件夹,打开工程的属性对话框,在Application页面的下方,有个Tile Options的配置项目,可以设置主方块的正面的标题和背景图片。
2)更改应用程序的WMAppManifest.xml文件。
小方块的正面内容的XML标签已经自动创建好,各个项目的值是空白的,输入数值即可。同时添加背面内容的XML标签和相应的数值即可,背面的背景图片XML标签的名称我没有找到,使用BackBackgroundImageUri在运行时报错,说是非法的标签。
3)编写代码。
工程添加引用Microsoft.Phone,单元添加引用 using Microsoft.Phone.Shell,在某个事件中添加下面的代码即可,建议在Page的OnNavigatedTo事件中使用。
ShellTile defaultTile = ShellTile.ActiveTiles.First(); StandardTileData tileData = new StandardTileData() { Title = "", Count = 0, BackgroundImage = new Uri("AppTileIcon.png", UriKind.Relative), BackTitle = "我的手机监视器", BackBackgroundImage = new Uri("AppTileIcon.png", UriKind.Relative), BackContent = "电池剩余:0 小时" }; defaultTile.Update(tileData);
三)操作附属的次方块Tile
1)添加:
//先判断是否存在包含有一个标志字符串“SecondaryTile”的Tile,这里的Linq我不太懂啊;(ShellTile newTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("SecondaryTile")); //如果不存在,则创建if (newTile == null) { int? tileCount = Int32.Parse(txtboxTileCount.Text); StandardTileData tileData = new StandardTileData() { Title = txtboxTileTitle.Text, BackgroundImage = new Uri("Tock.png", UriKind.Relative), Count = tileCount, BackTitle = txtboxTileTitle.Text, BackBackgroundImage = new Uri("Tock.png", UriKind.Relative), BackContent = "第2个Tile的后台内容" }; //调用ShellTile的Create方法,同时传入该Tile(是Secondary Tile)需要使用的启动程序的参数(必须要传),那个英文问号后面的那一串就是前面判断使用的字符串内容。//只能创建一个,创建第二个Secondary Tile时会报错的。 ShellTile.Create(new Uri("/MainPage.xaml?SecondaryTile", UriKind.Relative), tileData);}
注意:第一次运行时,桌面上是没有方块Tile的,需要手动添加。
2)删除:
ShellTile newTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("SecondaryTile")); //如果存在,则删除if (newTile != null) newTile.Delete();
3)更新:
ShellTile newTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("SecondaryTile")); //如果存在,则更新if (newTile != null) { StandardTileData tileData = new StandardTileData { Title = txtboxTileTitle.Text }; newTile.Update(NewTileData); }
四)思考
1)可以更新的内容太少了,如字体不能设置、只有这6项内容可以设置,Tile的尺寸大小是固定的173*173,三星的天气预报程序Now的Tile是个长方形的方块,相当于两个小方块的大小,上面可以显示城市名称、温度信息等,估计整体是个图片。
2)使用ShellTileSchedule自动更新Tile时,都只能更新背景图片,不知啥原因?且背景图片必须是网络上的图片,不允许使用本地图片,太窝火了,这就是个鸡肋嘛!
3)使用隔离区的图片文件和接收Push消息,还没仔细研究过,需要时可以查看MSDN。
4)XNA游戏程序中应该也能这样使用吧。
转载于:https://www.cnblogs.com/glowworm/archive/2011/10/03/2198703.html
学习Windows Phone手机开发:Tile的使用相关推荐
- 学习Windows Phone手机开发:迷你手电筒程序
一)准备 看资料说未公开的DLL提供访问照相机的闪光灯的API,利用其功能可以打开闪光灯使闪光灯一直保持打开状态,从而能实现手电筒的功能.商店里已经有很多类似的程序了,不知道微软怎么审核通过的.这个D ...
- 跟我一起学习Windows Store的开发(1):如何创建WindowsStore的应用程序
用过Windows8操作系统的人,应该都对下面的界面比较熟悉: 这个界面中我们看到的一个个块,中文称为"磁贴",英文为tile,我们将其风格称为Metro风格.它的作用就相当于传统 ...
- 从零开始学习Windows WDF驱动程序开发
摘要:本文通过简单的例子和精简的说明,带你快速了解和掌握基于WDF架构的Windows驱动程序的开发过程.WDF自带的文档非常详细而且冗长,读者需要一定的编程基础和英语水平,再加上一定的努力,才能看明 ...
- Silverlight for Windows Phone 7开发体验
直接下水 正如学习游泳应该下水尝试一下,而不是坐在教室里看书,学习Windows Phone 7开发技术也应该亲身实践一下,而不是仅仅翻阅资料.那么,怎样实践呢?不必想得太复杂,这里所说的实践就是找个 ...
- 刚开始Windows Mobile的开发,请大家多多关照
刚开始学习Windows Mobile的开发,现在正在学习WML和WAP的网站制作,请大家多多关照. 转载于:https://www.cnblogs.com/czha2002/archive/2005 ...
- 学习Windows Phone 7手机开发:迷你手电筒程序
学习Windows Phone 7手机开发:迷你手电筒程序 时间:2011-10-08 23:24 来源:博客园 作者:虫子CCC 点击:829次 一)准备 看资料说未公开的DLL提供访问照相机的 ...
- 手机开发平台的学习指南、教程和资料总结
手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多. 手机可分为智能手机开发和feather phone手机.开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian.wi ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- Windows手机开发工具与资源
=========================================================== 作者: dotnet(http://dotnet.itpub.net) 发表于: ...
最新文章
- LeetCode简单题之买卖股票的最佳时机
- 艾伟_转载:从ASP.NET的PHP执行速度比较谈起
- 赫夫曼树建立c语言源程序编译结果详细解释,哈夫曼树的建立与实现最终版(备份存档)...
- 模拟生态系统-自己编写生命
- object+java+equals_java-为什么SparseIntArray.equals(Object)不起作用?
- pycharm弹出提示信息Server's certificate is not trusted
- 当刻度嘟嘟和网易云信在一起...
- 操作系统(概述、组成)、用户态、内核态
- 深度协同过滤:用神经网络取代内积建模
- 面试官是怎样高效面试的(面试官的“套路”
- 微软是如何使用 C# 重写 C# 编译器并将其开源的
- java/android 做题中整理的碎片小贴士(15)
- 漂流瓶html5,微信又搞事情?漂流瓶下线,居然还有这些新功能...
- 兼容M1芯片 Denise Audio poltergate Mac - 侧链均衡器
- Linux 端口占用情况查看
- 加油站收银系统 Java_加油站也能用收银系统吗?
- JAVA后端主流开发框架
- 【目标检测】目标检测算法-从OverFeat到YOLO
- python爬LOL英雄皮肤
- 360wifi驱动linux驱动安装,ubuntu安装360随身wifi驱动
热门文章
- 浅析网站内链优化如何营造良好的内链生态环境?
- matlab ezplot fplot,【转】Matlab plot fplot ezplot用法与区别
- java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
- cesium面积计算_cesium-长度测量和面积测量
- minhash pyspark 源码分析——hash join table是关键
- 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用
- sphinx源码分析总结
- nginx 只允许/不允许 其他域名直接访问
- 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)
- 【Android测试】【第十四节】Appium——简述