一、创建默认磁贴

  创建默认磁贴,不需要任何代码只有制作几张图片就可以了。

  1.创建工程之后,在工程目录找到package.appxmanifest,打开它。

  2.在应用程序栏,通知选项,选择徽章和图块文本。

     

  3.然后切换到可见资产栏,右边有几个初始选项。图块(磁贴)旁边有一个显示名称选项,一个正方形150*150的磁贴,一个是310*150的,

分别对应着开始屏幕中切换磁贴大小的最大和中等大小模式,只有这两种才能下显示名称,还有一种更小的图标是不能显示名称了,因为它已经够

小了,还要显示文本就显示不下了。然后是背景色,我们默认为transparent透明,因为自从8.1开始微软就开始吧开始屏幕支持了透明的特性,这

样就可以在开始屏幕设置壁纸,透过磁贴就能看到开始屏幕的壁纸。

  磁贴总共有三种尺寸的图标:

  1.71*71正方形徽标:开始屏幕磁贴最小的一种形式,只显示图标不能显示文字,Square71x71Logo.png

  2.150*150正方形徽标:开始屏幕磁贴中等大小的一种,默认创建就是这个尺寸,可以显示文字,多任务列表显示的也是这个图标,Logo.png

  3.310*150长方形徽标:开始屏幕最大的一种磁贴,可以显示名称,WideLogo.png

  应用列表的Icon:

  44*44正方形徽标:应用列表的图标,SmallLogo.png

  应用商店徽标:

  50*50,StoreLogo.png

  徽章徽标:

  24*24,BadgeLogo.png,默认锁屏通知提醒的图片。

  初始屏幕有初始屏幕背景色和初始屏幕图片两个设置。SplashScreen.png

  

 一般图像需求

  磁贴和 Toast 源图像的尺寸必须小于或等于 1024x1024 像素,文件大小必须小于或等于 200 KB,类型必须为 .png、.jpg、.jpeg 或 .gif。图像没有位深或颜色需求,只要它满足其他需求。

  以上所有图片都有放大140倍和240倍的图片设置,这些图片会加上.scale-140.png或.scale-240.png

  

二、发送磁贴更新

  磁贴有很多种,模板枚举TileTemplateType提供各种各样的正方形、长方形、带图片等待非常多,具体可以到这https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/windows.ui.notifications.tiletemplatetype.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1查看。

  我们看其中一种TileWide310x150ImageAndText01,这是310*150的模板,可以显示文本和图片。我们看一下Xml模板结构:

  

  1. <tile>
  2. <visual version="2">
  3. <binding template="TileWide310x150ImageAndText01" fallback="TileWideImageandText01">
  4. <image id="1" src="ms-appx:///assets/redWide.png"/>
  5. <text id="1">Hello World! My very own tile notification</text>
  6. </binding>
  7. </visual>
  8. </tile>

  和Toast一样,磁贴也是通过Xml解析模板编辑Xml来修改或创建更新内容,所以这两个namspace是必选的。

  1. using Windows.UI.Notifications;
  2. using Windows.Data.Xml.Dom;

  然后在我们的例子里添加一个AppBarButton来发送更新,一个来清除更新

  1. <Page.BottomAppBar>
  2. <CommandBar>
  3. <CommandBar.PrimaryCommands>
  4. <AppBarButton Label="更新磁贴" Click="AppBarButton_Click"/>
      
              <AppBarButton Label="清除更新" Click="AppBarButton_Click_1"/>
  1. </CommandBar.PrimaryCommands>
  2. </CommandBar>
  3. </Page.BottomAppBar>

  在Click事件里写下发送更新代码:

  1. private void AppBarButton_Click(object sender, RoutedEventArgs e)
  2. {
  3. //获取310*150的磁贴模板Document对象
  4. XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150ImageAndText01);
  5. //磁贴文本,如果指定了显示应用名称,文本将会显示在应用名称上方
  6. XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
  7. tileTextAttributes[].InnerText = "内容更新了哦!!";
  8. //磁贴图片
  9. XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");
  10. ((XmlElement)tileImageAttributes[]).SetAttribute("src", "http://pic.cnr.cn/pic/guoji/20150201/W020150201362994790722.jpg");
  11. //建立TileNotification
  12. TileNotification tileNotification = new TileNotification(tileXml);

        //五分钟之后清除更新
        tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddMinutes(5);

  1. //立即发送更新
  2. TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
  3.  
  4. }

  磁贴中图片支持三种图片来源,一种是应用程序包,还有支持应用的本地存储和网络图片。

  应用程序包前缀:”ms-appx:///”,如assets目录下的图片:”ms-appx:///assets/redWide.png”

  本地存储空间:”ms-appdata:///local/”,如”ms-appdata:///local/redWide.png”

  网络图片:”http://”或”https://”,如”http://www.contoso.com/redWide.png”

  ps:模板中使用的图像都要求大小小于 200 KB,小于 1024 x 1024 像素。

  微软是建议我们最好设置磁贴更新的过期时间,而不是手动的清除它,当然清除它也很简单,一句代码就够了,TileUpdateManager.CreateTileUpdaterForApplication().Clear();

  默认图片有点呵呵,不知道会不会被和谐。。。,更新的图片是百度随便找的。

  

三、发送锁屏提醒更新

  锁屏提醒有两种形式,一种是显示数字,一种是显示字符。它的模板枚举类是BadgeTemplateType,数字是BadgeNumber,

字符是BadgeGlyph。

  更新锁屏提醒:

  1. private void AppBarButton_Click_2(object sender, RoutedEventArgs e)
  2. {
  3. //用一个计数器,奇数就显示文字偶数显示数字
  4. XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(counter % == ? BadgeTemplateType.BadgeGlyph : BadgeTemplateType.BadgeNumber);
  5. XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
  6. //两种模板都是value这个值
  7. badgeElement.SetAttribute("value", counter % == ? "" + counter : "您有新的信息哦");
  8. BadgeNotification badge = new BadgeNotification(badgeXml);
  9. BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);
  10. counter++;
  11.  
  12. }

  清除锁屏:

  1. private void AppBarButton_Click_3(object sender, RoutedEventArgs e)
  2. {
  3. BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
  4. }

  更新了锁屏提醒,磁贴的角标也会更新哦,三种尺寸的磁贴都角表数字提醒。但是更新到锁屏好像不是很及时哦,并且前提是一定要在锁屏的通知程序选上自

己的,通知详细也得选自己的,要不然文本形式的锁屏提醒就看不到的哦!

  

WP8.1学习系列(第三章)——磁贴和锁屏通知的更多相关文章

  1. WP8.1学习系列(第十七章)——Windows Phone重要图形、视觉指示器和通知

    美感在手机应用中是不可或缺的,它是直观操作的代名词.在 Windows Phone 中,你的磁贴.初始屏幕.图标.控件和导航的视觉元素会引起用户对应用程序内的相关任务.优先事项或操作的注意,并采用新颖 ...

  2. WP8.1学习系列(第二十三章)——到控件的数据绑定

    在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Vis ...

  3. WP8.1学习系列(第十七章)——交互UX之输入和反馈模式

    如果你将 Windows 应用商店应用设计为触摸交互,则可免费获取对触摸板.鼠标.笔和键盘交互的支持.你的用户可以从一种输入法切换到另一种,而不会丧失应用体验的感觉.将键盘插入平板电脑?没问题.你的应 ...

  4. WP8.1学习系列(第十一章)——中心控件Hub开发指南

    在本文中 先决条件 什么是中心控件? 添加中心控件 将分区添加到中心 添加交互式分区头用于导航 将展示磁贴添加到中心 使用窄应用中的垂直中心 借助中心使用语义式缩放视图 摘要和后续步骤 重要的 API ...

  5. WP8.1学习系列(第四章)——交互UX之导航模式

    交互模式和指南 这部分包括三部分内容,分别是导航模式.命令模式和输入模式. 导航模式 虽然 Windows 导航模式提供了框架,但它提倡创新.激发你的创造力并在已建立的模式上构建. 命令模式 使用应用 ...

  6. WP8.1学习系列(第二十七章)——ListView和GridView入门

    快速入门:添加 ListView 和 GridView 控件 (XAML)   在本文中 先决条件 选择 ListView 或 GridView 将项添加到项集合 设置项目源 指定项目的外观 指定视图 ...

  7. WP8.1学习系列(第二十一章)——本地应用数据

    了解如何存储和检索本地应用数据存储中的设置和文件. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 W ...

  8. WP8.1学习系列(第七章)——应用选项卡Pivot交互UX

    “应用选项卡”模式用于用户经常在中间导航的多个 UI 页面.如果你的应用基于单个主题(例如,电影.棒球等),该模式尤其有用.每页都将为用户显示与该应用呈现的整体数据相关的一些内容.“应用选项卡”模式可 ...

  9. WP8.1学习系列(第六章)——中心控件Hub面板部分交互UX

    本主题中呈现的模型类似于适用于 Windows Phone 的具有主页菜单(中心或透视控件)的中心应用中描述的模型.正如之前的案例所示,你要向用户呈现不同的功能区域.此处的区别在于你可以在顶层呈现所有 ...

随机推荐

  1. Blog

    http://www.cnblogs.com/digdeep/archive/2015/11/16/4968453.htmlhttp://it.dataguru.cn/article-8406-1.h ...

  2. linux下时间同步的两种方法分享

    方法1:与一个已知的时间服务器同步 复制代码 代码如下: ntpdate time.nist.gov 其中 time.nist.gov 是一个时间服务器. 删除本地时间并设置时区为上海 复制代码 代码 ...

  3. php函数返回引用示例

    <?php class Test { public $userCache; public function init() { for($i = 0; $i < 5; $i++) { $us ...

  4. iOS :ViewDidAppear

    进入一个 UIViewController 会调用它的三个方法,分别是 viewDidLoad, viewWillAppear, viewDidAppear. 如每个方法的名字一样,在不同的方法中要处 ...

  5. SAX解析XML笔记

    关于基本操作,请参考:Java用SAX解析XML,这里不重复造轮子了,以下是个人笔记:

  6. Mac下给SD卡烧录树莓派系统

    1.mac 磁盘工具 抹掉sd卡 为fat 2. df -h 看清sd卡号 3. 卸载sd卡 diskutil unmount /dev/disk2s2 Volume UNTITLED on disk ...

  7. SharePoint 2013 处理Promoted Links类型的List下的Tiles View的默认Webpart展示方式

    问题: 为了去掉Photo Gallery的水平滚动效果,更改为根据内容进行自适应宽度多行显示效果 Promoter link --> photo gallery Not horizontal ...

  8. RancherOS(ROS)如何安装到硬盘? 并设置为用户自动登录到系统? -a rancher.autologin=tty1

    RancherOS 安装到硬盘,一般都是通过ssh_authorized_keys 方式. ------------------------------------------- 从第一次认识到这个方 ...

  9. MyBatis 原码解析(version:3.2.7)

    mybatis-plus 实践及架构原理.pdf mybatis-plus思维导图 首先,我们看使用原生的JDBC来操作数据库的方式: // 1. 获取JDBC Connection Connecti ...

  10. Maven------报错:Error resolving version for plugin

    配置Maven插件时报错:Error resolving version for plugin 'org.springframeboot.boot:spring-boot-maven-plugin' ...