鸟叔学Windows8开发(3):Toast通知

 

传说好像明天就是世界末日了。。。。。

好吧 我要赶在世界末日前写完这篇博文,但愿我明天还起得来。。。。

上一篇鸟叔学习了Tile以及给他发送本地通知,今天我们来看看他的兄弟Toast通知,详情可参考MSDN Toast通知概述

一、Toast通知是什么?

  Toast通知就是屏幕右上角弹出来的一个小窗,我们可以使用它来做一些提醒,比如说受到新邮件呀、约会提醒呀 等等,但是不要乱发哦,不然你做的程序就等着被卸载的命运吧。

二、Toast能干什么?

  我们先来看看代码(这段代码包括今天要探讨的所有Toast功能)稍后慢慢讲解

        //使用String发送一个Toast通知
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            //使用string创建一个XML文档作为通知的模板
            string toastStr = "<toast duration='long' launch='Page1'>"//通过给Toast节点添加一个duration属性来设置Toast通知的显示时间长(long)短(short)
                               + "<visual version='1'>"
                               + "<binding template='ToastText02'>"
                               + "<text id='1'>Heading text</text>"
                               + "<text id='2'>我来试一试</text>"
                               + "</binding>"
                               + "</visual>"
                               + "<audio src='ms-winsoundevent:Notification.Mail' loop='true'/>"//可以在toast的节点下面设置声音节点,当声音设置循环的时候,duration必须设置为long,不播放声音的时候需要设置audio元素的属性silent=true
                               + "</toast>";
            XmlDocument toastXml = new XmlDocument();
            toastXml.LoadXml(toastStr);
            ToastNotification toastNotification = new ToastNotification(toastXml);
            //在调试前必须先在程序清单中Package.appxmanifest文件中将支持Toast通知设置为'是'
            ToastNotificationManager.CreateToastNotifier().Show(toastNotification);
        }

Note:
1、在使用Toast通知前我们必须先在Package.manifest文件中将 支持Toast通知设置为是,不然调试的时候不能弹出Toast通知。

2、我们可以给Toast通知添加声音(好像默认也有),就是它弹出来的时候会有提示声音。

   a、我们可以在Toast通知的XML架构文档的Toast元素节点下面添加一个audio节点<audio src='ms-winsoundevent:Notification.Mail' loop='true'/>,

   b、src:是文件声音的类型,可以参考MSDN Toast通知音频选项

   c、loop:是设置声音是否循环,如果要设置为true 则必须将Toast通知设置为长时间提醒,即给他添加duration属性并设置为long,duration='long'

3、我们还可以给Toast通知添加处理事件。

   a、 如果我们给Toast通知添加了launch属性,并且给他赋值(这个值可以随便定义)了的话,当我们点击弹出额Toast的时候,他会触发App.xaml.cs文件下面的OnLaunched事件,如果没有赋值的话是不会触发的。 我们可以通过事件参数获得Toasted通知设置的参数值。

//处理Toast通知,必须给Toast通知设置了参数后,才会触发OnLaunch事件
            if (args.Arguments == "Page1")
                rootFrame.Navigate(typeof(Page1));

 
总结:

  其实今天的Toast通知本质还是和上一篇Tile通知是基本上相同的。所以学会了的话就一同百通,锁屏提醒和辅助磁贴实现也是这样子的。

  不过Toast通知还可以合并,(比如说大家遇到这样一种情况,当多个程序的Toast通知,同时到达的时候,我们可以合并他们发出一个通知,而不是陆续弹出。等鸟叔学会了再和大家探讨,如果你已经知道的话,那你一定要告诉我。)

 

欢迎与鸟叔一起探讨学习,共同成长,鸟叔的微博 多了特

 

 

posted on 2012-12-20 18:06  多了特  阅读(2158)  评论(0编辑  收藏  举报