我希望以这种方式在我的Windows Phone 8.1应用中添加页面转换,以下页面将从屏幕底部滑入。当您通过点击搜索按钮启动Bing时,会使用类似的效果。
不幸的是,MSDN对该主题的描述并不多。有谁知道如何实现这样的动画?
答案 0 :(得分:17)
首先,您必须为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>
我不确定这是否是您正在寻找的确切动画。有关动画的更多信息,请参阅here at MSDN。
当然,您还可以定义Frame
的新ContentTransitions
,以便它们成为所有Pages
的默认值 - 例如:
// instead of null put in MainPage constructor:
mainFrame.ContentTransitions = new TransitionCollection { new PaneThemeTransition { Edge = EdgeTransitionLocation.Bottom } };
答案 1 :(得分:3)
可以从代码中基于每个导航覆盖默认转换。
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>
这会强制页面在导航到的时候滑入。仍可通过特定导航方案的代码覆盖此默认值。
答案 2 :(得分:-2)
在The Windows Phone Toolkit中,您可以找到动画和示例
以下是article