Xaml Windows Phone 8.1类似Bing的幻灯片页面动画

Xaml Windows Phone 8.1类似Bing的幻灯片页面动画,xaml,windows-phone,windows-phone-8.1,Xaml,Windows Phone,Windows Phone 8.1,我想在我的Windows Phone 8.1应用程序中添加一个页面转换,这样下面的页面将从屏幕底部滑入。点击搜索按钮启动Bing时,也会使用类似的效果 不幸的是,MSDN对这个主题没有太多描述。有人知道如何实现这样的动画吗?在中可以找到动画和示例 以下是一些首先,您必须禁用框架的当前转换——最好的位置是App.xaml.cs中创建根框架的位置,但这取决于应用程序的初始化方式。例如,在主页构造函数中: public MainPage() { this.InitializeComponent

我想在我的Windows Phone 8.1应用程序中添加一个页面转换,这样下面的页面将从屏幕底部滑入。点击搜索按钮启动Bing时,也会使用类似的效果

不幸的是,MSDN对这个主题没有太多描述。有人知道如何实现这样的动画吗?

在中可以找到动画和示例


以下是一些

首先,您必须禁用
框架的当前转换
——最好的位置是
App.xaml.cs
中创建
根框架的位置,但这取决于应用程序的初始化方式。例如,在主页构造函数中:

public MainPage()
{
    this.InitializeComponent();
    Frame mainFrame = Window.Current.Content as Frame;
    mainFrame.ContentTransitions = null;
}
禁用默认转换后,您可以在每个
页面中定义自己的转换:

在.xaml的
页面中:

<Page.Transitions>
    <TransitionCollection>
       <PaneThemeTransition Edge="Bottom"/>          
    </TransitionCollection>
</Page.Transitions>

默认的转换可以在每个导航的基础上从代码中重写

NavigationTransitionInfo transitionInfo = new SlideNavigationTransitionInfo();
Frame.Navigate(typeof(SecondPage), false, transitionInfo);
上面的代码将强制
第二页
以您想要的方式从底部滑入。但是,这仅适用于此特定导航场景。如果要在从任何位置导航时滑入
SecondPage
,请在XAML中设置
NavigationTransitionInfo

<Page.Transitions>
    <TransitionCollection>
        <NavigationThemeTransition>
            <NavigationThemeTransition.DefaultNavigationTransitionInfo>
                <SlideNavigationTransitionInfo/>
            </NavigationThemeTransition.DefaultNavigationTransitionInfo>
        </NavigationThemeTransition>
    </TransitionCollection>
</Page.Transitions>


这将强制页面在导航到时滑入。对于特定的导航场景,仍然可以通过代码覆盖此默认设置。

您提供的解决方案几乎完美无瑕,谢谢。这正是我所想的动画类型。但是,动画开始后,前一页立即变黑。由此产生的效果是,下一页滑到一个黑色区域,而不是前一页。您知道如何修复它吗?@user3596795您是否尝试过为所有页面设置主题动画(在答案的末尾)-在这种情况下,前一页将在新幻灯片进入之前向下滑动。为所有页面设置主题动画后,前一页的行为确实与您描述的一样。但这并不完全是我的意思。当下一页滑入时,我希望前一页保持静止。您知道如何实现它吗?@user3596795这可能是一项艰巨的任务-我认为metransition包含两个-in/out-ui元素,因此可能很难只应用其中的一半。也许您必须尝试编写自己的
转换
,但我不确定如何操作。@user3596795在导航到页面转换时,您是否能够找到一种方法使导航从页面保持静止?我认为他使用的是WP8.1 WinRT而不是WP7 Silverlight
<Page.Transitions>
    <TransitionCollection>
        <NavigationThemeTransition>
            <NavigationThemeTransition.DefaultNavigationTransitionInfo>
                <SlideNavigationTransitionInfo/>
            </NavigationThemeTransition.DefaultNavigationTransitionInfo>
        </NavigationThemeTransition>
    </TransitionCollection>
</Page.Transitions>