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的使用相关推荐

  1. 学习Windows Phone手机开发:迷你手电筒程序

    一)准备 看资料说未公开的DLL提供访问照相机的闪光灯的API,利用其功能可以打开闪光灯使闪光灯一直保持打开状态,从而能实现手电筒的功能.商店里已经有很多类似的程序了,不知道微软怎么审核通过的.这个D ...

  2. 跟我一起学习Windows Store的开发(1):如何创建WindowsStore的应用程序

    用过Windows8操作系统的人,应该都对下面的界面比较熟悉: 这个界面中我们看到的一个个块,中文称为"磁贴",英文为tile,我们将其风格称为Metro风格.它的作用就相当于传统 ...

  3. 从零开始学习Windows WDF驱动程序开发

    摘要:本文通过简单的例子和精简的说明,带你快速了解和掌握基于WDF架构的Windows驱动程序的开发过程.WDF自带的文档非常详细而且冗长,读者需要一定的编程基础和英语水平,再加上一定的努力,才能看明 ...

  4. Silverlight for Windows Phone 7开发体验

    直接下水 正如学习游泳应该下水尝试一下,而不是坐在教室里看书,学习Windows Phone 7开发技术也应该亲身实践一下,而不是仅仅翻阅资料.那么,怎样实践呢?不必想得太复杂,这里所说的实践就是找个 ...

  5. 刚开始Windows Mobile的开发,请大家多多关照

    刚开始学习Windows Mobile的开发,现在正在学习WML和WAP的网站制作,请大家多多关照. 转载于:https://www.cnblogs.com/czha2002/archive/2005 ...

  6. 学习Windows Phone 7手机开发:迷你手电筒程序

    学习Windows Phone 7手机开发:迷你手电筒程序 时间:2011-10-08 23:24 来源:博客园  作者:虫子CCC  点击:829次 一)准备 看资料说未公开的DLL提供访问照相机的 ...

  7. 手机开发平台的学习指南、教程和资料总结

    手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多.     手机可分为智能手机开发和feather phone手机.开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian.wi ...

  8. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  9. Windows手机开发工具与资源

    =========================================================== 作者: dotnet(http://dotnet.itpub.net) 发表于: ...

最新文章

  1. LeetCode简单题之买卖股票的最‭佳时机
  2. 艾伟_转载:从ASP.NET的PHP执行速度比较谈起
  3. 赫夫曼树建立c语言源程序编译结果详细解释,哈夫曼树的建立与实现最终版(备份存档)...
  4. 模拟生态系统-自己编写生命
  5. object+java+equals_java-为什么SparseIntArray.equals(Object)不起作用?
  6. pycharm弹出提示信息Server's certificate is not trusted
  7. 当刻度嘟嘟和网易云信在一起...
  8. 操作系统(概述、组成)、用户态、内核态
  9. 深度协同过滤:用神经网络取代内积建模
  10. 面试官是怎样高效面试的(面试官的“套路”
  11. 微软是如何使用 C# 重写 C# 编译器并将其开源的
  12. java/android 做题中整理的碎片小贴士(15)
  13. 漂流瓶html5,微信又搞事情?漂流瓶下线,居然还有这些新功能...
  14. 兼容M1芯片 Denise Audio poltergate Mac - 侧链均衡器
  15. Linux 端口占用情况查看
  16. 加油站收银系统 Java_加油站也能用收银系统吗?
  17. JAVA后端主流开发框架
  18. 【目标检测】目标检测算法-从OverFeat到YOLO
  19. python爬LOL英雄皮肤
  20. 360wifi驱动linux驱动安装,ubuntu安装360随身wifi驱动

热门文章

  1. 浅析网站内链优化如何营造良好的内链生态环境?
  2. matlab ezplot fplot,【转】Matlab plot fplot ezplot用法与区别
  3. java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
  4. cesium面积计算_cesium-长度测量和面积测量
  5. minhash pyspark 源码分析——hash join table是关键
  6. 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用
  7. sphinx源码分析总结
  8. nginx 只允许/不允许 其他域名直接访问
  9. 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)
  10. 【Android测试】【第十四节】Appium——简述