zoukankan      html  css  js  c++  java
  • 《Windows Phone 7开发笔记》Live Tile的实现

      在Windows Phone SDK 7.0中每一个Application只能对应一个Tile,也就是不管你如何推送或者更新都只能有一个Tile。在SDK 7.1之后就出现了多Tile,开发者可以自己定制Tile,我们将其称为Secondary Tile。

      下面我们来看一下如何新建一个Secondary Tile。创建Secondary Tile需要涉及到两个重要的类:

       

      >> ShellTile类

      该类主要负责管理多个Secondary Tile,ActiveTiles是所拥有的Tile的集合,第一个Tile就是App本身自带的Tile。

      如下是ShellTile的重要属性:

     NameDescription
    Public property  ActiveTiles 包含了所有已经Pin到桌面上Tile的集合。
    Public property NavigationUri 表示所创建的Secondary Tile在点击时所要跳转到的页面所对应的Uri。

      

      >> StandardTileData类

      该类用于创建一个Tile,在创建、更新或删除Secondary Tile时均要通过它来进行操作。

      如下是StandardTileData的重要属性:

     NameDescription
    Public property BackBackgroundImage 设置背面Tile的背景图片。
    Public property BackContent 设置背面Tile上的文字信息。
    Public property BackgroundImage 设置主页面Tile上的背景图片。
    Public property BackTitle 设置背面Tile上的标题。
    Public property Count 设置当前主页面Tile上显示的所推送的消息数量,取值范围是0-99。
    Public property Title 设置主页面Tile上的标题

      下面来进行一些实例练习:

      >> 创建一个Secondary Tile

     1 // 通过点击事件触发创建Secondary Tile的事件
     2         private void button1_Click(object sender, RoutedEventArgs e)
     3         {
     4             // 下行代码表示确认是否已存在包含"ID=Wu"关键字的Secondary Tile
     5             ShellTile find = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("ID=Wu"));
     6 
     7             // 若没有则创建新的Secondary Tile
     8             if (find == null)
     9             {
    10                 StandardTileData data = new StandardTileData 
    11                 { 
    12                     BackgroundImage = new Uri("/1.jpg", UriKind.Relative),
    13                     Title = "SecondTile",
    14                     Count = 99,
    15                     BackTitle = "BackTitle",
    16                     BackContent = "BackContent",
    17                     BackBackgroundImage = new Uri("/2.jpg", UriKind.Relative)
    18                 };
    19 
    20                 // 调用Create方法创建,并设置该Secondary Tile所要跳转的页面的Uri和关键字参数
    21                 ShellTile.Create(new Uri("/Page1.xaml?ID=Wu", UriKind.Relative), data);
    22             }
    23         }

      上示代码完成之后还需对所跳转页面做一定的内容添加

     1 public partial class Page1 : PhoneApplicationPage
     2     {
     3         public Page1()
     4         {
     5             InitializeComponent();
     6         }
     7         protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
     8         {
     9             base.OnNavigatedTo(e);
    10 
    11             // 在PageTitle中显示传递过来的值
    12             this.PageTitle.Text = this.NavigationContext.QueryString["ID"];
    13         }
    14     }

      

      >> 更新Application Tile

     1 // 通过点击事件触发更新Tile事件
     2         private void button2_Click(object sender, RoutedEventArgs e)
     3         {
     4             // 找到第一个Tile,也就是该App本身主Tile
     5             ShellTile find = ShellTile.ActiveTiles.First();
     6 
     7             // 若找到,则更新其内容
     8             if (find != null)
     9             {
    10                 StandardTileData data = new StandardTileData();
    11                 data.Title = "Update Tile";
    12                 data.BackgroundImage = new Uri("/1.jpg", UriKind.Relative);
    13                 data.Count = 20;
    14                 data.BackContent = "BackContent";
    15                 data.BackTitle = "Update Back Tile";
    16                 data.BackBackgroundImage = new Uri("/2.jpg", UriKind.Relative);
    17 
    18                 // 调用Update方法更新
    19                 find.Update(data);
    20             }
    21         }

      更新Secondary Tile的方法和更新Application Tile一样,只需在将

      ShellTile find = ShellTile.ActiveTiles.First();

      改为

      ShellTile find = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("ID=Wu"));

      即可。

  • 相关阅读:
    android:descendantFocusability用法简析
    离开自己的安乐窝
    Android Material Design 中文版
    android Material
    jquery 效果网址分享
    Android判断TextView是否超出加省略号
    如何摆脱工具类
    android 框架
    gridview 横向滚动 一行显示
    自定义 spinner
  • 原文地址:https://www.cnblogs.com/wulinfeng/p/2538206.html
Copyright © 2011-2022 走看看