Windows 8 Uygulamalarda Toast Notification Kullanımı

Windows 8 uygulaması geliştirirken kullanıcıyı bilgilendirmek isteyebiliriz. Kullanıcıya sadece bilgi vermek için MessageDialog kullanmak doğru olmayacaktır, kullanıcı bir süre sonra rahatsızlık duymaya başlayacak ve belkide uygulamayı kullanmaktan vazgeçecektir.

Kullanıcıyı bilgilendirmenin daha doğru yolu Toast Notification sistemini kullanmaktır.

Toast Notification sistemini kullanırken dikkat etmemiz gereken ToastTemplateType enum yapısıdır.

MSDN‘de yer alan ToastTemplateType enumeration sayfasından hangi tiplerde toast notification gösterebileceğinizi öğrenebilirsiniz.

using kısmına

Windows.UI.Notifications</pre>

eklemeliyiz. Örnek kullanım;

public static void ShowNotification(string Title, string Message)
{
    const ToastTemplateType template = ToastTemplateType.ToastText02;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}

public static void ShowNotification(string Title, string Message, string ImageFileName)
{
    const ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toastImage = toastXml.GetElementsByTagName("image");
    toastImage.SetAttribute("src", ImageFileName);

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}

Hatta Toast Notification gösterimi esnasında uyarı sesi bile çaldırabiliriz. Bunu yapmak için audio elementini kullanacağız. Sistemde kayıtlı uyarı sesleri;

  • ms-winsoundevent:Notification.Default
  • ms-winsoundevent:Notification.IM
  • ms-winsoundevent:Notification.Mail
  • ms-winsoundevent:Notification.Reminder
  • ms-winsoundevent:Notification.SMS
  • ms-winsoundevent:Notification.Looping.Alarm
  • ms-winsoundevent:Notification.Looping.Alarm2
  • ms-winsoundevent:Notification.Looping.Call
  • ms-winsoundevent:Notification.Looping.Call2

Örnek kullanım;

public static void ShowNotification(string Title, string Message, string ImageFileName, string SoundName)
{
    const ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toastImage = toastXml.GetElementsByTagName("image");
    toastImage.SetAttribute("src", ImageFileName);

    var toastAudio = toastXml.GetElementsByTagName("audio");
    toastAudio.SetAttribute("src", SoundName);

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}


Son olarak, yukarıdaki kodların çalışması için uygulamanın *Package.appxmanifest* dosyasında **Toast Capable** seçeneğine **Yes** değerini vermeyi *unutmamalıyız*

İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı