MessageDialog 取代傳統 MessageBox,提供非模態異步對話框,支援最多三個命令按鈕、預設/取消命令索引、標題與內容自訂。
// 僅內容
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();
}
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 簡潔實用,適合關鍵決策確認。下一章將介紹應用程式資料的本地儲存機制。