標籤:http io ar 使用 sp for div on 2014
功能說明
使用過Lumia系列手機的開發人員,對於內建的相機功能相信都很熟悉。在Lumia內建的相機功能中,提供使用者變更相片參數、變更影片參數...等等的設定功能,都是如所示意的:點選ApplicationBar的選項之後,在同頁面中顯示設定選單,來提供使用者設定參數。而這樣,點選ApplicationBar的選項之後,在同一個頁面顯示選單的功能,我自己給它一個名字叫做:「ApplicationMenu」。
使用ApplicationMenu與使用者互動,有著下表所列的種種優缺點,開發人員可以依照系統需求來做評估與選擇。而目前.NET Framework並沒有提供內建的ApplicationMenu,開發人員必須自己實做。本篇文章介紹如何實做ApplicationMenu,用以在點選ApplicationBar的選項之後,在同一個頁面顯示選單,為自己留個紀錄也希望能協助到有需要的開發人員。
- 優點
- 減少切換頁面時,使用者等待新頁面的等候時間。
- 減少切換頁面後,使用者對於新頁面的學習恐懼。
- 減少撰寫程式時,開發人員對於狀態維持、參數傳遞、狀態恢複等等功能的設計。
- ......
- 缺點
- 頁面選單過多時,增加使用者的學習負擔。
- 將選單加入頁面,意味著頁面功能增加,增加了執行時的記憶體。
- 將選單加入頁面,意味著頁面職責增加,增加了維護時的複雜度。
- ......
功能使用
在開始介紹如何實做ApplicationMenu之前,先介紹如何使用ApplicationMenu,避免開發人員看到大量的實做程式碼就直接昏迷不醒。本篇文章所實做的ApplicationMenu,最終是將功能封裝成為Popup類別的擴充方法:
- ApplicationMenuExtensionpublic static class ApplicationMenuExtension{ // Methods public static void ShowApplicationMenu(this Popup popup) { // ... } public static void HideApplicationMenu(this Popup popup) { // ... }}
開發人員要在頁面加入ApplicationMenu的時候,只需要先在頁面的XAML內,定義一個做為ApplicationMenu的Popup類別、以及用來開啟這個ApplicationMenu的ApplicationBar類別:
- ApplicationBar
- ApplicationMenu
接著只需要在頁面的事件處理函式中,呼叫ShowApplicationMenu、HideApplicationMenu這兩個Popup類別的擴充方法,就可以在頁面中顯示、隱藏ApplicationMenu:
- MainPagepublic partial class MainPage : PhoneApplicationPage{ // Handlers private void BeginSettingButton_Click(object sender, EventArgs e) { // Show this.SettingMenu001.ShowApplicationMenu(); } private void EndSettingButton_Click(object sender, EventArgs e) { // Hide this.SettingMenu001.HideApplicationMenu(); }}
- 執行結果
- 詳細說明:http://wp.662p.com/thread-8109-1-1.html
wp使用ApplicationMenu與使用者互動