2010-10-29 56 views
2

我做了一个包含一个togglebutton的用户控件。当用户点击它时,它会显示一个全屏大小的弹出窗口。我想添加以下功能:当用户按下硬件返回按钮并且弹出窗口打开时,关闭弹出窗口。问题是只有usercontrol的父页面有backkeypress事件。我如何处理这是一个可重用控件的用户控件? 我尽量避免处理页面代码中的按钮按钮,因此处理这种情况就像调用页面的OnBackKeyPress事件处理程序中的usercontrol方法是我想要做的最后一件事情(页面以编程方式生成)...WP7后退键处理子弹出

回答

4

控件需要以某种方式找到对页面的引用 - 无论是在构造函数中,还是在UI树上行走,直到找到PhoneApplicationPage。然后它可以订阅the event本身,并在事件关闭时取消订阅。

+0

谢谢!现在我有另一个问题:我找到了父页面,但事件处理程序从未在我的用户控件中调用:( parentPage = FindParentPage(this); if(parentPage!= null) { parentPage.BackKeyPress + = new EventHandler < System.ComponentModel.CancelEventArgs>(parentpage_BackKeyPress);} 我 – Vic 2010-10-29 13:15:00

+0

有投parentPage添加事件处理程序时,炫魅... – Vic 2010-10-29 13:33:42

+0

@Downvoter:护理评论 – 2010-11-02 22:31:36