快捷搜索:

【Windows Phone实用开发教程】18、使用SystemTray显示

在Windows Phone 7 (Nodo)之前的版本中,我们要在利用法度榜样显示消息提醒,或者是进度提示,平日的做法在页面的顶部放置一个专门的容器(如一个Grid),里面放置一些文本和PerformanceProgressBar。 在Mango中,我们多了一种选择,便是可以在SystemTray中显示文本和进度条。如下图,SystemTray即显示系统信息的状态栏,有当前的旌旗灯号,电量,光阴等等。

Jeff 写过一篇使用SystemTray的文章,本文是在其根基上做了一些延伸。我会以两个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。下面的代码是外部假如调用的,十分简单:

源代码下载:下载

您可能还会对下面的文章感兴趣: