日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【Win10】探索 Windows 10 10586 之 JumpList(跳转列表)

發布時間:2023/12/13 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 【Win10】探索 Windows 10 10586 之 JumpList(跳转列表) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Windows 10 10586 出來了也挺久的了,應該大部分都從 10240 升級到這個版本了。在 10586 中,微軟添加了 200 多個新的 API,具體 API 的變動,大家可以點擊下面這個鏈接來看:

http://martinsuchan.github.io/ApiPeek/Diffs/win10.10240.to.win10.10586.fulldiff.html

其中不乏許多人都感興趣的 HoloLens 的 API。不過現在連工程機都沒幾個人有的情況下(而且出了我也買不起),我還是看一下有什么實用點的 API 了吧→_→。粗略翻閱一下,JumpList(我稱它為跳轉列表)這個算是相當有用的了。

打開 Visual Studio 2015 Update 1,新建一個空白的 UWP 工程,然后在項目上右鍵 → 屬性。

或許有些小伙伴還是分不清這兩個的含義和區別,這里我稍微說明下:

目標版本是指你能使用的 API 的版本,JumpList 這個 API 是 10586 的,因此這里如果你選擇的是 10240 就沒法用了。

而最低版本則是用戶能安裝你這個 APP 的版本,只有等于或高于的用戶才能安裝。

那么你又會問了,像上面圖片這樣的,10240 的用戶安裝了這個 APP,然后運行到 10586 的 API 的代碼會怎樣。答案就是會產生一個異常,但是,微軟也給出了相應的解決方案,那就是在調用這些 API 之前先檢查是不是能用,這個類就是 ApiInformation。

由于 ApiInformation 類的方法的參數都是字符串形式的,我們很容易敲錯,因此在這里,我先強烈推薦一個代碼分析器!!!

https://www.nuget.org/packages/PlatformSpecific.Analyzer/

代碼分析器是 VS 2015 的新功能,是基于 roslyn 的,roslyn 這個東西比較復雜,這里我就不班門弄斧了。像一般的 nuget 包那樣安裝就行了。

安裝完之后是這樣的:

在 MSDN 上我們可以看到,JumpList 目前是只支持 Desktop 的,IsSupported 正是為了檢測這個。https://msdn.microsoft.com/zh-cn/library/mt608936(v=win.10).aspx

那么寫下如下代碼:

可以看見代碼被標注了綠色的波浪線,這個就是我前面為什么要安裝分析器的原因。然后點擊小燈泡后選擇第一項。代碼就會變成下面那樣:

此時波浪線也消失了,這樣 10240 的機器就不會調用到里面代碼,而 10586 或以上的機器就能調用到里面的代碼。

接下來我們可以調用 JumpList 的 LoadCurrentAsync 方法來讀取該 APP 的跳轉列表。

然后可以獲取到 JumpList 的實例了。

JumpList 類有三個實例成員:

Items 屬性是指里面的項,SaveAsync 方法一眼就看出是保存。SystemGroupKind 我先不管放一邊,最后再管它。

然后對 Items 屬性操作一下,最后調用保存:

運行之后,任務欄:

開始菜單:

開始屏幕(也就是開始菜單右側磁貼部分):

然后斷點 App.xaml.cs 之后,點擊 JumpList 的測試這個項后會觸發 OnLaunched 方法。

所以在 OnLaunched 里面處理 JumpList 傳遞過來的參數跟二級磁貼的方式是相同的。

接下來先回去看一下 JumpListItem,有如下成員:

Arguments 是參數,OnLaunched 中會獲取到這個值。

Description 這個就相當于 ToolTip,如下圖:

DisplayName 就是項顯示的名稱。

GroupName 就是這一項歸屬與哪一個組,如下圖:

如果 GroupName 為空字符串就會被分配在“任務”這里。

Kind 是一個只讀屬性,一個枚舉類型:

指示這個 Item 是項還是分隔線。

Logo 這個很好懂,就是項前面那個小圖標。不過需要注意的是,僅支持 ms-appx:///ms-appdata:///local/ 這兩個協議,http:// 是不支持的,但我們可以把圖片下載下來嘛。

RemovedByUser 是一個只讀屬性,我們是沒法修改它的,根據 MSDN 的描述:https://msdn.microsoft.com/zh-cn/library/windows.ui.startscreen.jumplistitem.aspx (Remarks 部分),自定義組中的 Item 右鍵會有一個刪除的選項,此時這個屬性就會被系統設置為 true。

那么用戶點擊這個之后,這個 Item 就會從跳轉列表中消失。但是,也僅僅是用戶看不見,JumpList 實例中的 Item 還是存在,并且 RemovedByUser 是被設置為 true。這個時候我們程序猿就需要從 JumpList 中刪除掉這個 Item 了。

另外特別要注意的是,DisplayNameDescriptionGroupName 這三個屬性是支持本地化的。

假設在項目根目錄建立 Resources.resw 文件,并假設有 LocalName 這么一項,那么可以將屬性值設置為 ms-resource:///Resources/LocalName。

Item 的成員就到此解釋完了。那接下來就把上面 JumpList 先忽略的 SystemGroupKind 屬性給說了。

根據 MSDN 的描述:https://msdn.microsoft.com/zh-cn/library/windows.ui.startscreen.jumplist.aspx (Example 部分)

假設 APP 關聯了文件協議的話,APP 是會自動產生 JumpList 的。

而這個 SystemGroupKind 枚舉屬性就是定義這個行為的,None 表示不自動產生,Frequent則表示最常用的文件,Recent 則表示最近使用的文件。默認的話是 Recent。

不過需要注意的是,這個屬于系統行為,自動產生的這些項是不包含在 JumpList 的 Item 中的,如果不需要系統提供的話,設置為 None 就好了。

本文就此結束,如果需要 Demo,可以去看微軟官方的 Demo:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/JumpList

JumpList 可以在文件處理型的 APP 中使用(例如云端記事本這種),或者取代二級磁貼(當然 JumpList 只能在 Desktop 上使用這點請注意)。希望大家能活用 JumpList 寫出優秀的 APP。

總結

以上是生活随笔為你收集整理的【Win10】探索 Windows 10 10586 之 JumpList(跳转列表)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。