標籤:style blog http color io os 使用 ar strong
原文:快速構建Windows 8風格應用16-SettingContract原理及構建
本篇博文主要介紹Setting Contract概述、Setting Contract實現基本原理、如何構建Setting Contract、構建Setting Contract最佳實務。
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樣本。
快速構建Windows 8風格應用16-SettingContract原理及構建