zoukankan      html  css  js  c++  java
  • 鸟叔学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通知,同时到达的时候,我们可以合并他们发出一个通知,而不是陆续弹出。等鸟叔学会了再和大家探讨,如果你已经知道的话,那你一定要告诉我。)

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

  • 相关阅读:
    zookeeper记录2(选举模式和ZooKeeper的集群安装)
    端口复用技术简单了解;重用端口;socket复用端口
    java线程池如何合理配置核心线程数?(转)
    数据库锁机制(转)
    mysql左连接锁表_不得不会的mysql锁(转)
    POI: calculated end index (4361) is out of allowable range (4339..4358)
    jdbcTemplate事务管理
    springboot 访问静态资源
    springboot集成持久化框架
    第六章 FreeBSD之配置日期和时间
  • 原文地址:https://www.cnblogs.com/duolete/p/2826839.html
Copyright © 2011-2022 走看看