かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

トースト通知

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

注意事項

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