C# WP7子弹出窗口中的后退键处理

C# WP7子弹出窗口中的后退键处理,c#,windows-phone-7,C#,Windows Phone 7,我制作了一个包含togglebutton的usercontrol。当用户点击它时,它会显示一个全屏大小的弹出窗口。我想添加以下功能:当用户按下硬件后退按钮,弹出窗口打开时,关闭弹出窗口。问题在于,只有usercontrol的父页面具有backkeypress事件。如何在可重用控件usercontrol中处理此问题? 我尽量避免在页面的代码中处理backbutton press,因此,像从页面的OnBackKeyPress事件处理程序调用usercontrol方法一样处理它是我最不愿意做的事情(页

我制作了一个包含togglebutton的usercontrol。当用户点击它时,它会显示一个全屏大小的弹出窗口。我想添加以下功能:当用户按下硬件后退按钮,弹出窗口打开时,关闭弹出窗口。问题在于,只有usercontrol的父页面具有backkeypress事件。如何在可重用控件usercontrol中处理此问题?
我尽量避免在页面的代码中处理backbutton press,因此,像从页面的OnBackKeyPress事件处理程序调用usercontrol方法一样处理它是我最不愿意做的事情(页面是通过编程生成的)….

控件将需要以某种方式找到对页面的引用-无论是在构造函数中还是在,或者沿着UI树走,直到它找到一个。然后,它可以自行订阅,并在活动结束时取消订阅。

谢谢!现在我遇到了另一个问题:我找到了父页面,但在我的usercontrol中从未调用eventhandler:(parentPage=FindParentPage(this);if(parentPage!=null){parentPage.BackKeyPress+=new eventhandler(parentPage_BackKeyPress);}@维克:那么你的
parentPage
变量是否绝对为空?这应该可以正常工作。为了测试,如果你在页面中重写OnBackKeyPress,会调用它吗?谢谢,问题是我将其转换到页面而不是主页,现在它工作得很好:)如果您想知道如何查找
PhoneApplicationPage
,请使用
VisualTreeHelper
,如中所述