がりらぼ

WindowsRuntimeの応援ブログ

Toast通知を楽にしたい

f:id:garicchi:20120818023335p:image
デバッグにも重宝するToast通知
使いたいなと思ってみてみると

// テンプレートのタイプを取得

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));

※かずきさんのブログより流用
トースト通知 - かずきのBlog@Hatena

なんでToast通知出すのに6行も書かなきゃならんのだ...もうちょっと簡単にできないのか...
どうやらTost通知はXMLで定義される形のとなっているので
XMLの要素を操作しないとTost通知させてくれないようです。

2行ぐらいで通知したい!!と思ったのでかずきさんのを参考に簡易クラスを作成

public class ToastText

{

XmlDocument xmlDoc;

public ToastText(string message,ToastTemplateType type)

{

xmlDoc = ToastNotificationManager.GetTemplateContent(type);

var textTag = xmlDoc.GetElementsByTagName("text").First();

textTag.AppendChild(xmlDoc.CreateTextNode(message));

}

public void Show()

{

var notifier = ToastNotificationManager.CreateToastNotifier();

notifier.Show(new ToastNotification(xmlDoc));

}

}


あとは使う側で

var toast = new ToastText("└( ^ω^ )」", ToastTemplateType.ToastText02);

toast.Show();

第二引数でToastTypeを指定できます。2行以上表示しないとあまり変わりませんが。

ちょっとした通知に重宝するToastなので簡易に使いたいものですね。
あとToastのXmlわからん