pengjunling 发表于 2015-5-20 12:20:24

#Win8# Secondary Tile

  上一篇以《Dota宝典》为例初步介绍了如何去初步开发一个Win8 App,这一篇我们将继续沿用《Dota宝典》的例子为大家介绍一下如何使用Secondary Tile。
  SecondaryTile即辅助磁贴,MSDN解释如下:
  辅助磁贴允许直接访问应用中的特定位置或体验。示例包括社交媒体应用中的单个好友、照片应用中的特定相册、已保存的游戏或音乐应用中的播放列表。当用户选择选择辅助磁贴时,它会启动侧重于固定内容的父应用。应用控制什么内容可以固定为辅助磁贴,但固定通常是用户操作。至少在创建辅助磁贴之前,用户必须明确确认。固定通常通过应用栏中的一个选项提供。
  
  创建SecondaryTile:
  在使用SecondaryTile之前我们先来了解下它的属性:
  titleId:用于标记辅助磁贴的特定ID
    shortName:显示在辅助磁贴上的信息
    displayName:当用户将鼠标移至辅助磁贴上方时所展示的信息
    arguments:当辅助磁贴被激活时所要传递的信息
    TileOptions:辅助磁贴上内容的展示方式
    logoReference:辅助磁贴上的图标的URI
    wideLogoReference:宽图标的URI
  
  SecondaryTile的构造方法有四种:
    SecondaryTile()
    SecondaryTile(titleId)
    SecondaryTile(titleId, shortName, displayName, arguments, TileOptions, logoReference)
    SecondaryTile(titleId, shortName, displayName, arguments, TileOptions, logoReference, wideLogoReference)
  
  在这里我们使用第三种构造方法去试验它。
  我们现在要做的就是让用户能够将自己喜欢的Dota英雄人物头像固定到开始页面。首先我们将代码页面切换到SplitPage页面,在右侧xaml代码框中将英雄人物头像对应的Image控件命名为“Image_Share”(我们要固定的图片),并在PageResource下添加如下代码:



1
2
3   
4         
5            
7         
8   
9
  
  在后台代码中的Button_Click_1函数中添加如下代码:



1 private async void Button_Click_1(object sender, RoutedEventArgs e)
2         {
3             // 获取当前选择的英雄人物头像的URI
4             BitmapImage bit = img_Share.Source as BitmapImage;
5             string uri = bit.UriSource.ToString();
6
7             // 标准URI为:"ms-appx:///" + 图片路径,故在第10个字节后插入"//"
8             uri = uri.Insert(9, "//");
9
10             //MessageDialog msg = new MessageDialog(uri);
11             //await msg.ShowAsync();
12
13             SecondaryTile secondaryTile = new SecondaryTile("SecondaryTile." + itemTitle.Text,
14                                                             itemTitle.Text,
15                                                             "Dota宝典",
16                                                             "",
17                                                             TileOptions.ShowNameOnLogo,
18                                                             new Uri(uri));
19
20             // 创建SecondaryTile
21             bool pinned = await secondaryTile.RequestCreateForSelectionAsync(new Rect(), Placement.Default);
22         }
  
  按F5尝试运行,在SplitPage页面点击右键调出Appbar,点击Appbar,效果如下:


  
  移除SecondaryTile:
  要删除辅助磁贴只需调用RequestCreateForSelectionAsync(Rect selection, Placement prefferedPlacement)函数即可。



1 private async void Button_Click_2(object sender, RoutedEventArgs e)
2         {
3             SecondaryTile secondaryTile = new SecondaryTile("SecondaryTile." + itemTitle.Text); 4
5             // 删除SecondaryTile
6             bool pinned = await secondaryTile.RequestCreateForSelectionAsync(new Rect(), Placement.Default);
7         }
  
  
  
  
页: [1]
查看完整版本: #Win8# Secondary Tile