かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

トースト通知

Windows 8 CP時点の情報にもとづいて記載しています。

ユーザの操作を妨げない通知ということで今までメッセージボックスみたいなので通知してたやつはさくっとトーストにしませふ。というということでレッツトライ。

トーストの有効化

アプリケーションのマニフェストでトーストを有効にします。

トースト通知のコードを書く

画面にボタンを置いて以下のようなコードを書きます。

private void buttonToast_Click(object sender, RoutedEventArgs e)
{
    // テンプレートのタイプを取得
    var template = ToastTemplateType.ToastText01;
    // テンプレートを取得(XMLDocument"
    var toastXml = ToastNotificationManager.GetTemplateContent(template);
    // textタグを取得(ここに文字列が入る)
    var textTag = toastXml.GetElementsByTagName("text").First();
    // 子要素に文字列を追加
    textTag.AppendChild(toastXml.CreateTextNode("こんにちは通知"));

    // Notifierを作成してShowメソッドで通知
    var notifier = ToastNotificationManager.CreateToastNotifier();
    notifier.Show(new ToastNotification(toastXml));
}

実行

ボタンを押すとこんな感じで通知されます。

ToastTemplateTypeを変更すれば、いろいろな表示方法に対応できます。

注意事項

エミュレータで実行すると、トーストは動きませんでした。(何か手順がたりないのかな・・・?)アプリケーション識別子みたいなのがダメと言われた。ということで実機で試しましょう!