かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

トースト通知

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を変更すれば、いろいろな表示方法に対応できます。

注意事項

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