Toast 通知出現在螢幕右上角 (RTL 環境左上角),應用未在前景時亦可觸達使用者,支援文字、圖片、音效、持久顯示、啟動參數傳遞。掌握其 XML 模板體系與發送流程,是打造高留存應用的必修課。


`應用程式 UI` 索引標籤 → `支援 Toast 通知` 設為 `是`。

同頁面設定 `Toast 能力` 區塊:`背景色色`、`前景文字色` (淺/深)、`小徽標` (右下角品牌圖示,建議 24×24)。


using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
// 範例:一張圖片 + 一行文字
ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(template);
模板 XML 結構:
<toast>
<visual>
<binding template="ToastImageAndText01">
<image id="1" src=""/>
<text id="1"></text>
</binding>
</visual>
</toast>

XmlNodeList textElements = toastXml.GetElementsByTagName("text");
textElements[0].AppendChild(toastXml.CreateTextNode("你好 Windows 8!歡迎回來。"));
// 注意:單行文字最多顯示 3 行自動換行,過長會被截斷,建議 ≤ 60 字元。
XmlNodeList imageElements = toastXml.GetElementsByTagName("image");
var imgElem = (XmlElement)imageElements[0];
// 1. 應用封裝內資源 (ms-appx:///) - 最快、離線可用
imgElem.SetAttribute("src", "ms-appx:///Assets/ToastIcon.png");
imgElem.SetAttribute("alt", "應用圖示");
// 2. 本地儲存 (ms-appdata:///local/) - 動態下載/產生的圖片
// imgElem.SetAttribute("src", "ms-appdata:///local/ToastImages/dynamic.png");
// 3. 網路圖片 (http/https) - 需網路、有大小限制 (≤200KB, ≤1024×1024)
// imgElem.SetAttribute("src", "https://cdn.example.com/toast.jpg");
// 取得根 節點
IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
var toastElem = (XmlElement)toastNode;
// 1. 持久時間:long (約 25 秒) / short (預設約 7 秒) — 僅適用提醒/行事曆類
toastElem.SetAttribute("duration", "long"); // 或 "short"
// 2. 自訂音效 (預設播放系統提示音)
// 必須建立
ToastNotification toast = new ToastNotification(toastXml);
// 可選:設定過期時間 (避免過期通知干擾)
toast.ExpirationTime = DateTimeOffset.UtcNow.AddMinutes(30);
// 發送
ToastNotificationManager.CreateToastNotifier().Show(toast);
// App.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs args) {
if (!string.IsNullOrEmpty(args.Arguments)) {
// 解析 launch 字串 (JSON)
var data = JsonObject.Parse(args.Arguments);
string type = data.GetNamedString("type");
if (type == "toast") {
string param1 = data.GetNamedString("param1");
// 導航至對應頁面,攜帶參數
rootFrame.Navigate(typeof(DetailPage), param1);
return;
}
}
// 正常啟動流程
rootFrame.Navigate(typeof(MainPage));
}


Toast 通知 = **模板 XML + 內容填充 + 視覺品牌 + 行為屬性 (音效/持久/啟動參數) + 發送 API**。掌握此流程,並遵守「精準、克制、可操作」的通知設計原則,即能將 Toast 轉化為應用留存與活躍的強大引擎,而非使用者卸載應用的推手。