我知道如何覆盖页面内的后退按钮:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
//Do your work here
base.OnBackKeyPress(e);
}
但问题是:我使用Inneractive
广告服务。当我打电话给InneractiveAd.DisplayAd()
时,它会显示一个不支持后退按钮的新页面。当它导航到这个页面时,它的uri是这样的:
/Inneractive.Ad;component/InneractiveFullScreenPage.xaml
问题:是否可以覆盖该页面的后退按钮,以便在用户按下时返回?
答案 0 :(得分:0)
在HandleBackKeyPress中,您通常会拦截BackKeyPress事件,因此您需要设置e.Cancel = true
以阻止标准 BackKey导航。要模拟标准导航,您可以执行以下操作:
void HookUpBackKeyPress(PhoneApplicationPage page)
{
page.BackKeyPress += HandleBackKeyPress;
}
void HandleBackKeyPress(object sender, CancelEventArgs e)
{
page.NavigationService.GoBack();
}
问题是获取对导航页面的引用。以下代码仅在您完全导航到新页面后才起作用,并且在NavigationService.Navigate(..)
var frame = (PhoneApplicationFrame)Application.Current.RootVisual;
page = (PhoneApplicationPage)frame.Content;