Setting Contract概述
1) Setting Contract在當前的應用中提供了快速、上下文相關的沉浸式的設置訪問體驗;
2) Setting Contract始終是可用的;
3) 設置包括始終可用的系統設置、讓用戶可以控制應用對系統設備和功能的訪問的系統代理設置、以及當前應用程序指定的設置;
我們可以從屏幕右邊緣輕掃劃出超級按鈕,選擇“設置”顯示設置窗口。設置窗口中既包括應用設置又包括系統設置。
對於開發者,可以通過SettingCommand提供設備面板中入口點,並且這些入口點顯示在設置窗口的頂端,其中“權限”和“評論和打分”[注意:只有通過Windows應用商店審核後的應用程序才有該入口點]兩個入口點由系統提供。設置面板底端包括由系統提供的電腦設置[音量、亮度、電源等信息]。
Setting Contract實現基本原理
1) 注冊設置面板中CommandsRequested事件;
2) 在相關設置事件的回調函數中指定SettingsCommand命令;
3) 最後將SettingsCommand命令添加到ApplicationCommands中,使該命令在設置面板中生效;
如何構建Setting Contract
上面剛剛提到實現Setting Contract的基本原理,那我們如何在應用程序中實現Setting Contract呢?
第一步:
注冊CommandsRequested事件。
第二步:
在onCommadsReqested回調函數中添加SettingsCommand命令,其中SettingsCommand類中構造函數包含三個參數。
三個參數分別為settingsCommandId[設置命令的Id,該參數為object類型]、label[控制面板中入口點顯示信息]、handler[觸發該入口點時執行的操作,該參數類型為UICommandInvokedHandler]。
回調函數中:
我們聲明SettingsCommand對象設置handler參數時,可以使用Lambda表達式方式處理該入口點擊時觸發的操作,也可以聲明UICommandInvokedHandler對象進行設置handler參數。
其中UICommandInvokedHandler委托對象中需要傳遞一個類型為IUICommand的參數。
代碼可如下:
注意:我們也可以在設置面板中某一入口點中點擊處理代碼中聲明SettingsFlyout對象,並且在該對象中添加自定義控件,用於在控制面板中顯示。
代碼可如下:
我們可以設置SettingsFlyout對象的Content、HeaderBrush、HeaderText等屬性,其中AboutUserControl為用戶自定義控件。
我們可以通過右鍵選中應用程序解決方案=>添加=>添加新項,在彈出面板中找到用戶控件並添加。
然後我們可以設置自定義控件的顯示的樣式和信息。代碼可如下:
第三步:
將SettingsCommand命令添加到ApplicationCommands中,使該入口點在設置面板中生效。
完成這三個步驟之後,我們可以運行自己應用程序看一下設置面板中有什麼變化。運行效果:
我們可以看到自己添加的兩個入口點已經顯示在設置面板中了。點擊某一入口點執行預先設置好的操作。
上圖中顯示的就是自定義控件中設置的內容。
構建Setting Contract最佳實踐
1) 在Setting Contract中設置應用的相關特性;
2) Setting Contract中不要包含任務流程;
3) 添加的設置項不要超過四項;
4) 將很少使用的設置項進行整合;
5) 為常用的設置項提供入口;
6) 設置的層級不要超過兩極;
7) 當用戶改變了設置後,應用將立即作出反映;
8) 為同種類型的設置提供相同的設置體驗;
9) 每個設置項應有一個簡潔易懂的說明;
10)不要使用設置導航到應用的其他部分;
11)設置面板中推薦使用的控件有:ToggleSwitch、Button、HyperlinkButton、TextBox、RadioButton和CheckBox;
更多關於Setting Contract使用建議可參考:應用設置指南(Metro風格應用)。
Setting Contract示例下載地址。
本文出自 “王祖康” 博客,請務必保留此出處http://wzk89.blog.51cto.com/1660752/1017949