Windows 10 开发 - 动态磁贴

在本章中,我们将讨论如何通过磁贴与用户进行交互。它是 Windows 10 的标志性元素。磁贴显示在开始屏幕以及开始菜单上。换句话说,它是一个应用程序图标资源,在整个 Windows 10 操作系统中以各种形式出现。它们是通用 Windows 平台 (UWP) 应用的名片。

磁贴剖析

磁贴有三种状态。

  • 基本状态 −开始磁贴的基本组件包括背景板、图标和应用标题。

基本状态
  • 半实时状态 − 它与基本磁贴相同,唯一的区别在于徽章(数字)可以显示 0-99 之间的数字。

半实时状态
  • 实时状态 −此图块包含半实时状态图块的所有元素,并显示额外的内容面板,您可以在其中放置任何内容,例如照片、文本等。

更新图块

有四种方式可以更新图块。

  • 定期 − 您可以使用 ScheduledTileNotification 设置模板和时间。

  • 定期 − 从 URI 检索信息时,您可以指定在该时间段后提取信息的时间,例如 30 分钟、1 小时、6 小时等。

  • 本地 − 可以从您的应用程序更新本地图块;无论是从前台还是后台应用。

  • 推送 − 通过从服务器推送信息来更新。

要创建图块,请按照给定的代码操作。

var tileXml = 
   TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01); 
 
var tileAttributes = tileXml.GetElementsByTagName("text"); 
tileAttributes[0].AppendChild(tileXml.CreateTextNode("Hello"));
			
var tileNotification = new TileNotification(tileXml);			
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

更新徽章非常简单,因为它只是一个数字,您可以像下面这样设置徽章的值。

var type = BadgeTemplateType.BadgeNumber;
var xml = BadgeUpdateManager.GetTemplateContent(type);

var elements = xml.GetElementsByTagName("badge");
var element = elements[0] as Windows.Data.Xml.Dom.XmlElement;
element.SetAttribute("value", "7");

var updator = BadgeUpdateManager.CreateBadgeUpdaterForApplication();
var notification = new BadgeNotification(xml);
updator.Update(notification);

让我们在 Visual Studio 中创建一个新的 UWP 项目。

  • 您将在解决方案资源管理器中的 Assets 文件夹下看到不同的 png 文件。

Assets Folder
  • 让我们在程序包清单中定义一个默认磁贴及其图像。

  • 双击 package.appxmanifest。这将打开清单编辑器窗口。

  • 选择Visual Assets选项卡。

Visual Assets
  • 您可以选择任意指定尺寸的应用程序磁贴图片和图标。在磁贴图像和徽标下,所有徽标均提供默认图像,例如

    • 71x71 方形徽标
    • 150x150 方形徽标
    • 310x310 方形徽标
    • 商店徽标
  • 当您执行应用程序并转到开始屏幕时,您将看到应用程序的磁贴。

执行您的应用程序