一:需求

一款好看好用的应用,对于UWP来说,动态的磁贴必不可少。

二:TileUpdateManager类 和TileUpdater类

如果需要更改或更新应用的磁贴,那么首先需要获得TileUpdater对象,顾名思义,TileUpdater就是磁贴的更新器。

通过TileUpdateManager类得到TileUpdater对象

TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();

三:TileUpdater 磁贴更新器类

3.1 清空应用的磁贴 

TileUpdater 有一个clear()方法用于清空当前应用的磁贴的内容,恢复为默认模式,默认就是一个软件的logo。该方法可以用于软件内点击按钮关闭动态磁贴的功能。

//删除所有更新并将平铺导致以显示其默认内容(如应用程序清单所声明)。
public void Clear();
tileUpdater.Clear();

 3.2  更新磁贴

 TileUpdater 有一个Update() 方法,用于更新磁贴,可以说是比较关键的方法了。先来看看方法的定义。

// 将内容或外观的更改应用于图块。
// notification:
// 为平铺的内容提供新的 XML 定义的对象。
public void Update(TileNotification notification);

参数需要提供一个 TileNotification 对象。查看TileNotification类的构造函数可以发现

public TileNotification(XmlDocument content);
TileNotification类的构造函数需要传递进一个XmlDocument对象。

实际上磁贴的模板就是一个xml的文件。TileNotification 对象就是用来放要更新的磁贴的模板。

四:磁铁模板

磁贴的模板可以用微软预定的磁贴模板,或者自己定义模板。

 4.1获取微软预设的磁贴模板

XmlDocument xml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Block);
TileTemplateType里有很多微软预设的磁贴的模板,主要是根据不同的磁贴大小,微软自己预设的磁贴。

4.2 创建自适应磁贴模板
自适应磁贴是win10一项新的功能,允许我们针对不同的磁贴大小设定模板。 既然磁贴的模板是xml格式的,那么它就是标记性语言。你可以像xaml那样,或者用类的方式定义。
请安装名为 Microsoft.Toolkit.Uwp.Notifications 的 NuGet 程序包(搜索“notifications uwp”) xml格式:
<tile>
<visual> <binding template="TileSmall">
<text>Small</text>
</binding> <binding template="TileMedium">
<text>Medium</text>
</binding> <binding template="TileWide">
<text>Wide</text>
</binding> <binding template="TileLarge">
<text>Large</text>
</binding> </visual>
</tile>

c#格式

TileContent content = new TileContent()
{
Visual = new TileVisual()
{
TileSmall = new TileBinding()
{
Content = new TileBindingContentAdaptive()
{
Children =
{
new AdaptiveText() { Text = "Small" }
}
}
}, TileMedium = new TileBinding()
{
Content = new TileBindingContentAdaptive()
{
Children =
{
new AdaptiveText() { Text = "Medium" }
}
}
}, TileWide = new TileBinding()
{
Content = new TileBindingContentAdaptive()
{
Children =
{
new AdaptiveText() { Text = "Wide" }
}
}
}, TileLarge = new TileBinding()
{
Content = new TileBindingContentAdaptive()
{
Children =
{
new AdaptiveText() { Text = "Large" }
}
}
}
}
};

这个自适应的磁贴也仅仅是针对四种状体的磁贴定义的。因为微软的磁贴也只能有(小,中,宽,大)四种形态。分别对应(TileSmall,TileMedium ,TileWide,TileLarge)。在每种状态里,添加你需要内容即可。你可以添加PeekImage,BackgroundImage,AdaptiveText等。

如果你用的是c#写的磁贴模板,有一个TileContent.Getxml() 方法用于将c#代码转化成xml。

这样你再创建一个TileNotification对象,通过TileUpdater.update()就可以更新磁贴了。

var xmlDocument= content.GetXml();

TileNotification tileNotification = new TileNotification(xmlDocument);
TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
tileUpdater.Update(tileNotification);

微软开发者文档地址:https://docs.microsoft.com/zh-cn/windows/uwp/controls-and-patterns/tiles-and-notifications-create-adaptive-tiles

-------some words-------

1.Notification 通知

2..tile 磁贴

---------the  end----------

UWP 磁贴设置的更多相关文章

  1. win10 UWP 应用设置

    win10 UWP 应用设置 简单的把设置需要的,放到微软自带的LocalSettings LocalSettings.Values可以存放几乎所有数据 如果需要存放复合数据,一个设置项是由多个值组成 ...

  2. 【转载】UWP应用设置和文件设置:科普

    数据有两个基本的分类,应用数据和用户数据,而用户数据则为由用户拥有的数据,如文档,音乐或电子邮件等,下面将大致的介绍一下应用数据的基本操作. 应用数据:应用数据包含APP的状态信息(如运行时状态,用户 ...

  3. UWP Windows10开发更新磁贴和动态更新磁贴

    下面将介绍两种方式如何在windows10 uwp开发中如何更新应用磁贴: 实际上windows的磁贴就是用xml实现的,你只需要创建相应格式的xml就可以实现动态磁贴了 一,手动更新磁贴 二,轮询更 ...

  4. Windows Phone 十四、磁贴通知

    磁贴(Tile) Windows Phone 磁贴种类: 小尺寸 SmallLogo:71x71: Square71x71 中等 Logo:150x150: Square150x150 宽 WideL ...

  5. [UWP小白日记-8]一些零碎的东西

    设置启动窗口大小 直接上代码了没什么好解释的了,既然能设置最小,那铁定就能设置最大 public MainPage() { //设定窗口启动显示大小 ApplicationView.Preferred ...

  6. win10 uwp 入门

    UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...

  7. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

  8. .NET Core学习笔记(2)—— WPF使用UWP Custom Control

    自.NET Core 3.0开始,某软加入了对WPF的支持.同时对XAML Islands也做了进一步加强.在.NET Core 3.0之前,我们只能在WPF程序中,通过两种方式有限制地使用Stand ...

  9. 2018-2-13-win10-UWP-应用设置

    title author date CreateTime categories win10 UWP 应用设置 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...

随机推荐

  1. Oracle-表被锁住

    1.如果update 某个表,没有报错,等待很久都没结束,那很有可能是表被锁了. 2.查看被锁的对象 select sid,serial#,username,SCHEMANAME,osuser,MAC ...

  2. 集成Mybatis

    本文根据个人喜好记录"腾讯课堂"的<Java项目之Maven+SpringMVC+Spring+Mybatis+MySql消费查询系统>视频教程关键步骤信息,视频地址: ...

  3. oracle 表查询(一)

    通过scott用户下的表来演示如何使用select语句,接下来对emp.dept.salgrade表结构进行解说. emp 雇员表字段名称   数据类型       是否为空   备注-------- ...

  4. Mysql 基于 Amoeba 的 读写分离

    首先说明一下amoeba 跟 MySQL proxy在读写分离的使用上面的区别: 在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群.写集群 机器比较多情况下,用mysql pro ...

  5. .Net 内存对象分析

    在生产环境中,通过运行日志我们会发现一些异常问题,此时,我们不能直接拿VS远程到服务器上调试,同时日志输出的信息无法百分百反映内存中对象的状态,比如说我们想查看进程中所有的Socket连接状态.服务路 ...

  6. SpringMVC框架(四)文件的上传下载,上下文路径

    文件目录: SpringMVC配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  7. less使用ch1--简单使用

    1 ku.less .reset(){ *{margin:0;padding:0;} ul.ol{list-style: none;} a{text-decoration: none;} img{bo ...

  8. 【转】python数据格式化之pprint

    pprint – 美观打印 作用:美观打印数据结构 pprint 包含一个“美观打印机”,用于生成数据结构的一个美观视图.格式化工具会生成数据结构的一些表示,不仅可以由解释器正确地解析,而且便于人类阅 ...

  9. hiveQL去重

    去重: 以id进行分组,然后取出每组的第一个 ; 以id进行分组,按照create_time降序排序后,然后取出每组的第一个 ; 将去重后的数据重新存储 ; 去重之后与其他表join算匹配数 sele ...

  10. ceph在品高云中的实践

    ceph简介 ceph是业界目前人气最高的开源存储项目之一,关于其定义在官网是这样的:"Ceph is a unified, distributed storage system desig ...