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

Windows 8 風格應用開發入門:MessageDialog 對話框完整指南

     編輯:關於.NET

MessageDialog 取代傳統 MessageBox,提供非模態異步對話框,支援最多三個命令按鈕、預設/取消命令索引、標題與內容自訂。

MessageDialog 概述

  • 命令列最多 3 個按鈕,未指定時系統自動添加「關閉」命令
  • 彈出時阻塞觸控事件,直到使用者回應
  • 建議僅用於關鍵確認,避免過度使用干擾體驗

建構函數

// 僅內容
var dialog = new MessageDialog("訊息內容");

// 內容 + 標題
var dialog = new MessageDialog("訊息內容", "對話框標題");

核心屬性與方法

成員類型說明
ShowAsync()方法異步顯示對話框,回傳 IUICommand
Commands屬性命令按鈕集合
Content屬性主要訊息內容
Title屬性標題文字
DefaultCommandIndex屬性Enter 鍵觸發的命令索引
CancelCommandIndex屬性Esc 鍵觸發的命令索引
Options屬性對話框選項設定

三種常見使用模式

模式一:預設關閉命令

預設關閉命令

private async void ShowDefaultDialog() {
    var dialog = new MessageDialog("預設關閉命令");
    await dialog.ShowAsync();
}

模式二:自訂命令與鍵盤快捷鍵

自訂命令

private async void ShowCustomDialog() {
    var dialog = new MessageDialog("網路連線無效");
    
    dialog.Commands.Add(new UICommand("重試", cmd => {
        // 重試邏輯
    }));
    dialog.Commands.Add(new UICommand("取消", cmd => {
        // 取消邏輯
    }));
    
    dialog.DefaultCommandIndex = 0;  // Enter → 重試
    dialog.CancelCommandIndex = 1;   // Esc → 取消
    
    await dialog.ShowAsync();
}

模式三:Lambda 簡寫與指定命令 ID

dialog.Commands.Add(new UICommand("重試", (cmd) => { /* 邏輯 */ }));
dialog.Commands.Add(new UICommand("取消", (cmd) => { /* 邏輯 */ }));

// 指定命令 ID(用於識別)
dialog.Commands.Add(new UICommand("不安裝", null, 0));
dialog.Commands.Add(new UICommand("安裝更新", null, 1));

執行緒模型注意事項

範例下載

MSDN 官方範例:Message dialog sample

MessageDialog 簡潔實用,適合關鍵決策確認。下一章將介紹應用程式資料的本地儲存機制。

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