【发布时间】:2012-08-13 05:06:35
【问题描述】:
如何在windows phone中制作一个可触摸的通知顶部栏?
我是 C# 和 windows phone world 的新手。所以我的问题可能很简单 解决方法,但是我google了很多,没有解决。 这是我的目的:我有一个在我的应用程序中运行的计时器,它请求一个 每隔一小时提供一次通知信息服务,并在顶部显示一个“通知栏” 屏幕。 获取信息很容易,但是当我想将它们显示到页面时, 这是我的问题:
1. 我使用系统托盘来显示我的信息。 它有效,但后来我发现进度没有触摸或点击事件 指示条。 我什至在 App.xaml.cs 中向 Touch.FrameReported 添加了一个事件,但是, 当我触摸系统托盘区域时,事件不会触发。
2. 然后我想用一个动态的方式来实现它:添加一个文本块到 当前页面 我得到了当前页面处理程序,但我只知道当前页面 处理程序的类型是 PhoneApplicationPage,我无法获取我的 Root UI 元素 (我所有的页面都有一个名为“LayoutRoot”的根元素) 当我尝试使用反射方法来获取“LayoutRoot”属性时, 返回值为空。
代码如下所示:
Type type = PhoneApplicationPageHandler.getType()<
//I checked,the type is my page's type
type.getProperty("LayoutRoot") or type.getField("LayoutRoot")
//they all return null
顺便说一句:LayoutRoot 是一个网格,它在我页面的 .xmal 文件中进行了描述。
现在我的选择是让我的所有页面都继承一个默认页面,在这个页面中,我会 实现一种方法来实现我模拟“可触摸顶栏”的第二种方式。
但我认为这种编码很丑。
那么,谁能告诉我: 1.如何将触摸事件添加到 SystemTray 或者 2.如何获取在xaml中描述的ui元素的处理程序,而我只有该页面的PhoneApplicationPage类型处理程序。
【问题讨论】:
-
你最好使用toast push notifications,而不是自己模仿它
标签: c# windows-phone-7 reflection system-tray