将项目添加到 Windows 跳转列表中

跳转列表是当用户右键单击任务栏或“开始”菜单中的应用图标时Windows显示的快捷菜单。 可以使用 任务 (快速应用范围操作(例如撰写新邮件或打开设置)以及 自定义项组 (如最近项目或固定的文档)填充跳转列表。

Important

JumpList API 需要包标识。 该功能可用于打包的(MSIX)应用和采用外部位置打包的应用,但在未打包应用中不可用。

先决条件

  • 应用必须具有包标识:即 使用 MSIX 打包打包到外部位置。 不支持解压缩的应用。
  • 目标Windows 10版本 1607(周年更新,内部版本 14393)或更高版本。

加载当前跳转列表

在添加或删除项之前,请通过调用 JumpList.LoadCurrentAsync 加载应用的当前跳转列表:

using Windows.UI.StartScreen;

var jumpList = await JumpList.LoadCurrentAsync();

添加任务

任务是 GroupName 属性为空的项。 Windows将它们放在跳转列表底部的内置“任务”部分。 对于无论上下文如何都始终适用的常见操作,请使用任务。

使用 JumpListItem.CreateWithArguments 创建任务,将其添加到 Items 集合,然后通过调用 JumpList.SaveAsync 进行保存。 当用户选择该任务时,Windows 会使用你提供的参数字符串启动你的应用,你可以在启动时从激活参数中读取该字符串。

var jumpList = await JumpList.LoadCurrentAsync();

var task = JumpListItem.CreateWithArguments("/compose", "New Message");
task.Description = "Compose a new message";
task.Logo = new Uri("ms-appx:///Assets/Tiles/AppList.targetsize-48.png");

jumpList.Items.Add(task);
await jumpList.SaveAsync();

将项添加到自定义组

使用自定义组可以在命名标题下组织相关项。 将 GroupName 属性设置为非空字符串;共享同一 GroupName 项的所有项目都显示在该标题下。

var jumpList = await JumpList.LoadCurrentAsync();

var item = JumpListItem.CreateWithArguments("/project-alpha", "Project Alpha");
item.GroupName = "Projects";
item.Description = "Open Project Alpha";
item.Logo = new Uri("ms-appx:///Assets/Tiles/AppList.targetsize-48.png");

jumpList.Items.Add(item);
await jumpList.SaveAsync();

清除所有项目

若要删除已添加的所有项,请在保存之前清除 Items 集合:

var jumpList = await JumpList.LoadCurrentAsync();
jumpList.Items.Clear();
await jumpList.SaveAsync();

无论此调用如何,Windows都会保留系统管理的分区(如最近频繁),仅清除自定义任务和组。