磁贴,wp系统独有。个人觉得还是蛮给力的。

好了废话不多说,我们来创建自己的辅助磁贴。创建磁贴是通过SecondaryTile对象来的,所以先说说该对象的一些重要属性。

Arguments属性:传值用的,就是将磁贴的相关参数传递给应用,从而让应用识别是哪个磁贴点击进入的。

BackgroupColor属性,这个属性看名字应该都很熟悉了,是磁贴的背景色。

DisplayName属性:磁贴左下角的文字信息。

VisualElements属性:设置磁贴的可视化属性的显示情况。

TileId属性:表示磁贴的唯一标识,可以通过这个TileId来判断磁贴是否存在和获取磁贴对象。

SamlLogo、Logo和WideLogo属性:它们分别表示小、中、宽三种磁贴对应的图片地址

Uri square71x71Logo = new Uri("ms-appx:///Assets/Square71x71Logo.scale-240.png");
Uri square150x150Logo = new Uri("ms-appx:///Assets/Logo.scale-240.png");
Uri wide310x150Logo = new Uri("ms-appx:///Assets/WideLogo.scale-240.png");
string tileId = "App1";
string tileArguments = "tileId" + " WasPinnedAt=" + DateTime.Now.ToLocalTime().ToString();
SecondaryTile secondaryTile = new SecondaryTile(tileId, "TitleTest", tileArguments, square150x150Logo, TileSize.Square150x150);
secondaryTile.VisualElements.Wide310x150Logo = wide310x150Logo;
secondaryTile.VisualElements.Square150x150Logo = square150x150Logo;
secondaryTile.VisualElements.Square71x71Logo = square71x71Logo;

secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
secondaryTile.VisualElements.ShowNameOnWide310x150Logo = true;

bool isPinned = await secondaryTile.RequestCreateAsync();

提醒一下

磁贴的其他操作:

//第一种
if(SecondaryTile.Exists(tileId))
{
    //存在该tileId的磁贴,就可以通过tileId来创建磁贴    SecondaryTile secondaryTile = new SecondaryTile(tileId)   //删除磁贴   bool isDelete = await secondaryTile.RequestDeleteAsync();   //更新磁贴   secondaryTile.DisplayName="Update Tile";   bool success = await secondaryTile.UpdateAsync();
}

//第二种
IReadOnlyList<SecondaryTile> tileList = await SecondaryTile.FindAllAsync();
foreach(var tile in tileList)
{
    ......
}

以上都是废话,我们来看看辅助磁贴的实际应用,举个简单例子(自己的理解,不对请留言),wp版的搜狐新闻,我们随意点一个自己订阅的频道,可以看到如图红箭头所示的按钮,

点击即可在‘开始’屏幕生成如下图所示的辅助磁贴,这时你点击该磁贴,你就会直接进入搜狐视频的热播页,当然你能直接进入热播页是因为SecondaryTile的Arguments的值起了至关重要的作用

如下:

<Grid>
    <Button Click="Button_Click" HorizontalAlignment="Center" VerticalAlignment="Center" Content="创建一个磁贴" />
    <TextBox Name="TestBox" TextWrapping="Wrap" />
</Grid>

//创建磁贴时设置SecondaryTile的Arguments的值string tileArguments = "进入视频热播页面";SecondaryTile secondaryTile = new SecondaryTile(tileId, "Test", tileArguments, square150x150Logo, TileSize.Square150x150);

protected override void OnNavigatedTo(NavigationEventArgs e){  TestBox.Text = e.Parameter.ToString();}

点击创建磁贴后,退出程序,再点击磁贴,运行效果如下

好了辅助磁贴就简单说到这儿。

我们再来说说动态磁贴,即磁贴通知。上篇我们提到了Toast通知,简单说下它和磁贴通知。

磁贴通知只能在磁贴上显示而且必须有磁贴,没有声音或者振动,但可以设置其显示的时间。Toast通知的显示只有几秒钟,是弹出式的提醒。创建方式和步骤两者相似,就不再详述。

创建磁贴通知步骤:

1、获取此贴通知模板

2、添加内容

3、创建磁贴通知对象

4、更新磁贴通知

XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText02);
XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
tileTextAttributes[].InnerText = "waha";
tileTextAttributes[].InnerText = "测试磁贴";
XmlNodeList tileIamgeAttributes = tileXml.GetElementsByTagName("image");
((XmlElement)tileIamgeAttributes[]).SetAttribute("src", "ms-appx:///Assets/Logo.scale-240.png");
TileNotification tileNotification = new TileNotification(tileXml);
tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddDays();
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

CreateTileUpdaterForApplication方法重载如下,参数为tileId时,可以更新指定的辅助磁贴。

好了,关于磁贴就说这么多,吃饭去!

windowsphone8.1学习笔记之磁贴的更多相关文章

  1. windowsphone8.1学习笔记之Toast通知

    熟悉或者了解wp系统的人都知道wp的Toast,Toast(吐司)通知是在屏幕最顶上弹出来的提示框,它专为与锁屏提醒.磁贴通知和应用中UI结合使用而设计,但它不是MessageDialog.说简单点它 ...

  2. windowsphone8.1学习笔记之位图编程

    说位图,先把image控件简单过下,Image的Source设置 <Image Name="img" Source="可以是网络图片的Uri.应用文件的Uri或者安 ...

  3. windowsphone8.1学习笔记之应用数据(四)

    应用数据的存储格式常用的分为json和xml两种(其实我都想略过这个地方的,json我一直用的是json.net,而wp上操作xml的方式与其他相比也没太多变化). 先说说json数据存储,关于jso ...

  4. windowsphone8.1学习笔记之应用数据(三)

    之前说了如何操作文本文件,如果是图片文件或者其他的二进制文件则需要操作文件的Stream或者Buffer数据.就需要用到DataReader和DataWriter这两个类了,这个的好好的练一下,以后的 ...

  5. windowsphone8.1学习笔记之应用数据(二)

    上一篇说了应用数据的应用设置,这篇说说应用文件,应用文件主要分为三种:本地应用文件.漫游应用文件和临时应用文件. 获取根目录方法如下,都是返回一个StorageFolder对象(稍后介绍这个). // ...

  6. windowsphone8.1学习笔记之应用数据(一)

    数据存储分为两种:云存储和应用数据(即本地存储),wp中的应用数据分为两种,一种是应用设置:一种是应用文件.wp的数据相关都是通过ApplicationData来实现,一个程序只有数据存储区. 先说应 ...

  7. Windows phone 8 学习笔记(5) 图块与通知(转)

    基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认图块,还可以有若干个次要图块.另外,通知与图块的关系比较密切,我们 ...

  8. Windows phone 8 学习笔记(5) 图块与通知

    原文:Windows phone 8 学习笔记(5) 图块与通知 基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认 ...

  9. Microsoft Power BI 学习笔记

    ​   Power Bi 学习笔记 一   Power BI 是微软发布的一系列的软件服务.应用和连接器,这些软件服务.应用和连接器协同工作,将不相关的数据源转化为合乎逻辑.视觉上逼真的交互式见解. ...

随机推荐

  1. 自定义通用dialogFragment

    代码地址如下:http://www.demodashi.com/demo/12844.html 前言 之前写过一篇dialogFragmnet封装默认dialog的文章 DialogFragment创 ...

  2. sqlserver用户角色相关的权限

  3. where 泛型类型参数及约束

    private void InsertData<TRowMetadata, TFieldMetadata, TCellMetadata>(IMetadataReader<TRowMe ...

  4. shell脚本与mongo交互

    1.mongo提供*.js的方法供linux调用 #!/bin/bash /usr/local/mongodb/bin/mongo hostname/dbname xxx.js xxx.js 内容如下 ...

  5. 算法基础:整数拆分问题(Golang实现)

    一个整数总能够拆分为2的幂的和.比如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共同拥有6种不同的 ...

  6. mybatis 使用注解实现多参数传递

    若映射器中的方法只有一个参数,则在对应的SQL语句中,可以采用#{参数名}的方式来引用此参数,以前的例子多属于此类.但这种方法却不适用于需要传递多个参数的情况,今天就来介绍如何使用注解传递多个参数 一 ...

  7. JavaScript之字符串、对象及操作符

    字符串-String 字符串就是字符序列. 字符串中,有些特殊字符,叫做字面量,常见的字面量如下表: 判断字符串长度使用length属性 text.length; 字符串拼接 var a = 'Jav ...

  8. iOS自定义转场动画实战讲解

    iOS自定义转场动画实战讲解   转场动画这事,说简单也简单,可以通过presentViewController:animated:completion:和dismissViewControllerA ...

  9. obj-fit

    该 object-fit CSS 属性指定替换元素的内容应该如何适应到其使用的高度和宽度确定的框. 初始值 fill 适用于 替换元素 遗传 是 媒体 视觉 计算值 按规定 动画类型 离散的 为了规范 ...

  10. 基于C#的超市收银管理系统

    基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...