Marvin's Blog【程式人生】

Ability will never catch up with the demand for it

11 Jul 2021

Windows的JumpList

一点背景

根据Windows 7: Jump Lists ,JumpList最早是从Windows7引入的。其目的是为访问文件和执行任务提供快捷方式。但是从Windows 7: Jump Lists 看,Win7的JumpList如果使用不当,很容易导致应用崩溃。如果是为访问文件提供的JumpList,应用必须关联到该文件类型。(Win7 Recent Jumplist without associating a filetype 貌似提供了一种不需要关联的办法)。这里有一个Win7的Custom Jump List Sample

由于JumpList是Windows Shell提供的服务,所以在不同的编程和应用模型中都可以使用。根据UWP Jump lists done right 给出的

UWP Jump lists done right 指出了JumpList几个容易被忽略的问题,作者还提供了一个示例工程https://github.com/msjogren/UWPJumpList

Windows.UI.StartScreen.JumpList

JumpList要么是系统管理的,要么是用户管理的。

系统提供三个默认群组,分别是Recent, Frequent以及Task。前面两个是系统管理的,后面一个是系统默认分类,但是由用户管理的。用户可以使用其他额外的群组。

Recent似乎来自StorageItemMostRecentlyUsedList 。Frequent群组不知如何管理的。Task主要用来执行任务,不特别针对文件。

如果要取消JumpList,就把分类设为None(也就是Task群组),然后保存一个空JumpList。

用户可以移除JumpList里面的项目,程序中加载JumpList的时候依然会出现,但是会被标记成RemovedByUser。

JumpListItem有Arguments,DisplayName,Description,GroupName等额外辖属。有些可以进行本地化。什么内容都没有的JumpListItem应该是被当作Separator了。

根据System “Pin to this list” and “Remove from this list” jump list context menu actions don’t do anything for items in custom jump list grouping ,Task分类不会显示Pinned的条目。

其他参考

(本篇完)

Categories