我想在我的Windows Phone 8.1应用程序中添加页面转换,使下一个页面从屏幕底部滑入。当您按下“搜索”按钮启动Bing时,使用类似的效果。不幸的是,MSDN在这个主题上没有提供太多描述。有人知道如何实现这样的动画吗?
首先,您需要禁用当前Frame
的转换——最好的地方是在App.xaml.cs
中创建rootframe
的位置,但这取决于应用程序的初始化方式。例如,在此处是在MainPage构造函数中:
首先,您需要禁用当前Frame
的转换——最好的地方是在App.xaml.cs
中创建rootframe
的位置,但这取决于应用程序的初始化方式。例如,在此处是在MainPage构造函数中:
public MainPage()
{
this.InitializeComponent();
Frame mainFrame = Window.Current.Content as Frame;
mainFrame.ContentTransitions = null;
}
在禁用默认转场后,您可以在每个Page
中定义自己的转场效果:
在Page.xaml
中:
<Page.Transitions>
<TransitionCollection>
<PaneThemeTransition Edge="Bottom"/>
</TransitionCollection>
</Page.Transitions>
我不确定那是否是您正在寻找的确切动画。有关动画的更多信息,您可以在MSDN上找到。Frame
的新ContentTransitions
,这样它们将成为所有Pages
的默认设置,例如:// instead of null put in MainPage constructor:
mainFrame.ContentTransitions = new TransitionCollection { new PaneThemeTransition { Edge = EdgeTransitionLocation.Bottom } };
NavigationTransitionInfo transitionInfo = new SlideNavigationTransitionInfo();
Frame.Navigate(typeof(SecondPage), false, transitionInfo);
SecondPage
从底部滑入,正如您所期望的那样。然而,这仅适用于特定的导航场景。如果您想要在从任何地方导航到SecondPage
时使其滑入,请在XAML中设置NavigationTransitionInfo
。<Page.Transitions>
<TransitionCollection>
<NavigationThemeTransition>
<NavigationThemeTransition.DefaultNavigationTransitionInfo>
<SlideNavigationTransitionInfo/>
</NavigationThemeTransition.DefaultNavigationTransitionInfo>
</NavigationThemeTransition>
</TransitionCollection>
</Page.Transitions>
这将强制页面在导航到该页面时滑入。对于特定的导航场景,可以通过代码仍然覆盖此默认设置。