WP7应用开发笔记(16) 本地Toast 提示
Toast 通知简介
Toast 通知是推送通知的三种类型的其中一种。
Toast 通知显示在屏幕的顶部,用于通知用户某个事件,如新闻或天气警报。除非用户通过向右轻拂关闭通知,否则 Toast 将显示大约 10 秒钟。如果用户点按 Toast,则会启动发送该 Toast 通知的应用程序。
Toast 通知的元素如下:
-
标题。紧挨着应用程序图标之后显示的黑体字字符串。在 XML 架构中,该字符串定义为 Text1 属性。
-
内容。紧挨着“标题”之后显示的非黑体字字符串。在 XML 架构中,该字符串定义为 Text2 属性。
-
参数。如果用户点按 Toast,则将参数值传递给您的应用程序,而不进行显示。该参数可以指示应用程序应该启动到的页面。该参数还包含传递到应用程序的名称-值对。在 XML 架构中,该字符串定义为 Param 属性。
显示效果如下:
本地Toast 提示
有时候我们需要显示一些提示信息可以使用Toast提示来直观的呈现,但是Toast提示必须使用推送通知。这样不是很方便,有没有办法不通过推送通知直接呈现出Toast通知的效果呢?
我寻找了很久在SDK里面好像暂时没有官方的实现方式,不过开源项目Coding4Fun.Phone.Toolkit 里的ToastPrompt就实现了这个效果,而且使用很简单。不过因为是本地的Toast提示不能在App外部呈现。
先声明一下:下面的部分内容摘自 WP7 ToastPrompt in depth
使用ToastPrompt
首先下载Coding4Fun.Phone.Toolkit 引用到项目中。
ToastPrompt呈现效果有横向和纵向
代码如下,用法和Message有点像:
private void Button_Click(object sender, RoutedEventArgs e)
{
ToastPrompt toast = new ToastPrompt(); //实例化
toast.Title = "ToastPrompt"; //设置标题
toast.Message = "Some message"; //设置正文消息
toast.FontSize = 50; //设置文本大小(可选)
toast.TextOrientation = System.Windows.Controls.Orientation.Vertical; //设置呈现为纵向
toast.ImageSource = new BitmapImage(new Uri("ApplicationIcon.png", UriKind.RelativeOrAbsolute)); //设置 标题前的图片(可选)
toast.Background = new SolidColorBrush(Colors.LightGray); //背景色(可选)
toast.Foreground = new SolidColorBrush(Colors.Red); //前景色(可选)
toast.Completed += toast_Completed; //Toast显示完毕后触发事件(可选)
toast.Show();
}
void toast_Completed(object sender, PopUpEventArgs<string, PopUpResult> e)
{
//TODO:Toast显示完毕后事件处理
}