• #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 <!--为App添加Appbar-->
    2 <Page.BottomAppBar>
    3     <AppBar>
    4         <StackPanel Orientation="Horizontal">
    5             <Button Content="Pin桌面" FontSize="18" Margin="30,0,0,0" Height="70" Width="100" Click="Button_Click_1"/>
    7         </StackPanel>
    8     </AppBar>
    9 </Page.BottomAppBar>

      在后台代码中的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         }
  • 相关阅读:
    《软件架构设计》温昱著读后感(一)
    质量属性II(信息领域热词分析)
    质量属性
    2020寒假学习进度报告16
    2020寒假学习进度报告15
    Nginx运行报错unknown directive ""
    使用ajax的几种方式
    Shiro中@RequiresAuthentication等等注解介绍
    shiro自定义异常无法被捕获总是抛出AuthenticationException解决方案
    java中String和int相互转换常用方法详解
  • 原文地址:https://www.cnblogs.com/wulinfeng/p/2681578.html
Copyright © 2020-2023  润新知