本篇博文主要介紹Setting Contract概述、Setting Contract實作基本原理、如何建構Setting Contract、建構Setting Contract最佳實踐。
Setting Contract概述
1) Setting Contract在目前的應用中提供了快速、上下文相關的沉浸式的設定通路體驗;
2) Setting Contract始終是可用的;
3) 設定包括始終可用的系統設定、讓使用者可以控制應用對系統裝置和功能的通路的系統代理設定、以及目前應用程式指定的設定;
我們可以從螢幕右邊緣輕掃劃出超級按鈕,選擇“設定”顯示設定視窗。設定視窗中既包括應用設定又包括系統設定。
Setting Contract實作基本原理
如何建構Setting Contract
上面剛剛提到實作Setting Contract的基本原理,那我們如何在應用程式中實作Setting Contract呢?
第一步:
注冊CommandsRequested事件。
第二步:
三個參數分别為settingsCommandId[設定指令的Id,該參數為object類型]、label[控制台中入口點顯示資訊]、handler[觸發該入口點時執行的操作,該參數類型為UICommandInvokedHandler]。
回調函數中:
其中UICommandInvokedHandler委托對象中需要傳遞一個類型為IUICommand的參數。
代碼可如下:
注意:我們也可以在設定面闆中某一入口點中點選處理代碼中聲明SettingsFlyout對象,并且在該對象中添加自定義控件,用于在控制台中顯示。
我們可以設定SettingsFlyout對象的Content、HeaderBrush、HeaderText等屬性,其中AboutUserControl為使用者自定義控件。
我們可以通過右鍵選中應用程式解決方案=>添加=>添加新項,在彈出面闆中找到使用者控件并添加。
然後我們可以設定自定義控件的顯示的樣式和資訊。代碼可如下:
第三步:
完成這三個步驟之後,我們可以運作自己應用程式看一下設定面闆中有什麼變化。運作效果:
我們可以看到自己添加的兩個入口點已經顯示在設定面闆中了。點選某一入口點執行預先設定好的操作。
上圖中顯示的就是自定義控件中設定的内容。
建構Setting Contract最佳實踐
1) 在Setting Contract中設定應用的相關特性;
2) Setting Contract中不要包含任務流程;
3) 添加的設定項不要超過四項;
4) 将很少使用的設定項進行整合;
5) 為常用的設定項提供入口;
6) 設定的層級不要超過兩極;
7) 當使用者改變了設定後,應用将立即作出反映;
8) 為同種類型的設定提供相同的設定體驗;
9) 每個設定項應有一個簡潔易懂的說明;
10)不要使用設定導航到應用的其他部分;
11)設定面闆中推薦使用的控件有:ToggleSwitch、Button、HyperlinkButton、TextBox、RadioButton和CheckBox;