当前位置: 移动技术网 > IT编程>移动开发>WP > Windows Phone 实用开发技巧(18):使用SystemTray显示全局消息提醒

Windows Phone 实用开发技巧(18):使用SystemTray显示全局消息提醒

2018年10月09日  | 移动技术网IT编程  | 我要评论

沙洋中学,你和我的倾城时光txt,道尔

在windows phone 7 (nodo)之前的版本中,我们要在应用程序显示消息提醒,或者是进度提示,通常的做法在页面的顶部放置一个专门的容器(如一个grid),里面放置一些文本和performanceprogressbar。 在mango中,我们多了一种选择,就是可以在systemtray中显示文本和进度条。如下图,systemtray即显示信息的状态栏,有当前的信号,电量,时间等等。

\

 jeff 写过一篇利用,本文是在其基础上做了一些延伸。我会以两个demo来演示systemtray的使用方法

demo1 :

页面中含有两个按钮,分别为上一条与下一条,点击下一条会显示下一条信息,点击上一条会显示上一条信息,最终的效果图如下: 

\

像jeff在他得博客中提到的一样,我们需要创建一个用于显示systemtray的类,在rootframe实例化时实例化这个类(在app.xaml.cs中大约120行)。然后提供一个单例的实例给外界

\

再来看下实例是怎么“劫持”rootframe的: 在初始化方法中,我们会实例化一个progressindicator,它是用来在systemtray上显示文本和进度的。然后注册一个页面导航的事件,如果当前页面不是为空,则将系统栏显示设置为true,并且设置其前景色、背景色和透明度。而在其构造函数中,实例化一个数组,这个数组是用于显示的广告的内容:

\

当然我们需要提供一个接口,以便我们在页面的code behind中可以控制当前显示的内容:

\

这里提供的是当前数组的索引。我们在代码中将索引++或者--,会更改当前 progressindicator的文本。然后我们来看看页面中是怎么控制的

\

可以看到页面中放置了两个button,而这两个button分别有相应的点击事件:

\

同时注意到,button的可用性是绑定属性的,数据源已经在页面构造函数中设置,下面在来看看converter是如何写的:

\

上述代码是“上一条”按钮对应的converter,即当前索引小于等于0时,按钮就不可用,同理“下一条”按钮的可用性也是这样设置的。、

 demo2:

我们在页面中放置一个togglebutton,即可以响应开关点击的按钮,如下图:

\

实现的功能:点击开启广告后,系统每隔2秒会显示一条广告内容,点击关闭广告后,系统栏自动隐藏

我们在windows phone 中通常使用dispatchertimer 去实现每隔几秒执行某个动作的功能。

同demo1一样,我们在globalloading中需要提供一个接口来控制是否显示广告:

\

这里我提供一个bool值的属性给外部,如果设置为true,则会启动timer去做something,如果设置为false,则会停止timer。细心的朋友可以注意到,这里我回将 progressindicator的可见性设置为同当前是否播放广告。下面来看看具体的timer是怎么做的:

\

timer中会设置一个当前的索引,每2秒执行玩一次后,会自加,当遍历玩数组后,会重新置为0。下面的代码是外部如果调用的,十分简单:

\

源代码下载

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网