zoukankan      html  css  js  c++  java
  • 学习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游戏程序中应该也能这样使用吧。

  • 相关阅读:
    Linux命令之vi
    CentOS7 查看IP
    Linux下mysql的命令
    @RequestMapping注解的参数说明
    springboot处理不同域的前端请求
    vue-cli4 取消关闭eslint 校验代码
    springmvc请求乱码
    访问静态资源报404错误
    eclipse创建Maven项目时pom.xml报错
    spring中的xml配置文件里报错
  • 原文地址:https://www.cnblogs.com/glowworm/p/2198703.html
Copyright © 2011-2022 走看看