首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Windows 8 風格應用開發入門:設定合約原理與建構指南

     編輯:關於.NET

設定合約提供系統級設定面板整合,使用者可透過 Charms 列「設定」存取應用設定。支援應用自訂設定項目、系統代管設定(權限、評分)與裝置設定(音量、亮度)。

設定合約概述

  • 快速、情境相關、沉浸式的設定存取體驗
  • 永遠可用,從螢幕右邊緣滑出 Charms 選擇「設定」
  • 面板頂端:應用自訂設定命令
  • 面板中段:系統代管設定(權限、評分)
  • 面板底端:裝置設定(音量、亮度、電源)

設定面板結構

實現基本原理

設定合約實現原理

  1. 註冊 SettingsPane.GetForCurrentView().CommandsRequested 事件
  2. 回呼中建立 SettingsCommand 指定 ID、標籤、處理器
  3. 將命令加入 ApplicationCommands 集合生效

三步驟建構設定合約

步驟 1:註冊 CommandsRequested 事件

public App() {
    SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested;
}

註冊事件程式碼

步驟 2:建立 SettingsCommand

private void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args) {
    // 使用 Lambda 表達式
    args.Request.ApplicationCommands.Add(new SettingsCommand(
        "privacyPolicy", "隱私權政策", (handler) => {
            LaunchUriAsync(new Uri("https://example.com/privacy"));
        }));
    
    // 使用 UICommandInvokedHandler
    args.Request.ApplicationCommands.Add(new SettingsCommand(
        "about", "關於", new UICommandInvokedHandler(OnAboutCommand)));
}

SettingsCommand 建構函數 回呼函數實作 UICommandInvokedHandler 委派 命令處理程式碼

進階:使用 SettingsFlyout 顯示自訂 UI

private void OnAboutCommand(IUICommand command) {
    var flyout = new SettingsFlyout {
        Title = "關於",
        HeaderBrush = new SolidColorBrush(Colors.DarkBlue),
        Content = new AboutUserControl(), // 自訂使用者控制項
        Width = 346
    };
    flyout.Show();
}

SettingsFlyout 使用 添加使用者控制項 自訂控制項 XAML

步驟 3:加入 ApplicationCommands

在回呼中直接 args.Request.ApplicationCommands.Add(command) 即可。

加入命令集合

執行效果驗證

設定面板顯示自訂命令 點擊命令顯示 SettingsFlyout

最佳實踐 11 原則

  1. 設定合約僅放置應用相關特性設定
  2. 不包含任務流程(如註冊流程)
  3. 設定項目不超過 4 項
  4. 低頻設定整合歸類
  5. 高頻設定提供直接入口
  6. 設定層級不超過 2 層
  7. 設定變更即時生效
  8. 同類設定提供一致體驗
  9. 每項設定有簡潔說明
  10. 不使用設定導航至應用其他區域
  11. 推薦控件:ToggleSwitch、Button、HyperlinkButton、TextBox、RadioButton、CheckBox

設定合約讓應用設定整合至系統體驗。下一章將介紹應用程式列的概觀與設計規範。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved