【发布时间】:2023-03-09 21:53:01
【问题描述】:
我相信这对我来说只是一个问题,因为我缺乏编程能力。我目前正在探索页面导航与 Windows Phone 应用程序之间的转换。我最初使用故事板和完成的事件处理程序来让我的页面在屏幕上和屏幕外进行动画处理。当您想使用相同的转换从一个页面导航到多个页面时,这些会导致问题。
所以我开始研究 OnNavigatedTo 和 OnNavigatingFrom 事件,虽然它对 OnNavigatedTo 工作得很好,但后者就不起作用了。似乎 Microsoft.Phone.Navigation 程序集不包含 OnNavigatingFrom,并且引用 System.Windows.Navigation,编译正常,但我无法让页面在导航时关闭动画。
我的 Page2 上有一个按钮,我想返回到我的 MainPage(在我用消息框覆盖后退键进行测试之后)。我在页面上进行了转换,并将其作为事件处理程序代码...
private void btnP2_BackToP1Clicked(object sender, System.Windows.RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
使用 OnNavigatedTo 和 OnNavigatingFrom 事件的代码...
protected override void OnNavigatedTo(PhoneNavigationEventArgs e)
{
PageTransition_In.Begin();
}
// //
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
PageTransition_Out.Begin();
base.OnNavigatingFrom(e);
}
我感觉 Windows Phone 应用程序可能不支持 OnNavigatingFrom。 OnNavigatedFrom 是 Microsoft.Phone.Navigation 的一部分,但它仅在页面不再处于活动状态时才执行操作,这为时已晚,无法执行任何动画效果。
【问题讨论】:
-
我感受到了你的痛苦!我已经尝试过 Technium 建议的过渡框架,但它不起作用。这当然是最简单和(如果可行的话)最方便的选择,但它存在重大问题。我所做的是您的原始方法并设置页面级别属性来存储您要导航到的页面。因此,在调用 Navigate() 之前,您需要使用目标页面设置属性。然后,当转换完成后,导航到该数据。这不是很好,但它是我发现的唯一可行的选择
标签: silverlight windows-phone-7