WPF 页面幻灯片
WPF Pages Slide
我有一个使用 WPF 制作的应用程序,我有多个页面和一个包含框架的表单,我将页面加载到一个框架上,每个页面都有后退和下一个按钮。
我想做的是在我按下下一步时以某种方式动画化框架上的页面导航,当前页面向左滑动,下一页也向左滑动并替换当前页面页面,当我按返回键时,当前页面向右滑动,上一页向右滑动,替换当前页面。
怎么做?
我在这里可能被证明是错误的,但我不相信 WPF 公开了一种轻松实现这一点的方法。 UWP.
中有覆盖现有过渡动画的方法
对于 WPF,您可以通过以下两种方式之一处理此问题...
开始页面滑出动画。当动画是
完成让它触发一个事件,然后调用框架进行更改
页数。
页面默认偏移并执行动画滑动
回到原来的位置。
或....
捕获帧的Navigating
事件,监听NavigationMode
,调用动画,让导航等待或标记e.Handled == true
,之后调用表示可以继续的标志。
为过渡做同样的事情。
问题来了;您不会同时在屏幕上显示两个页面,您必须编写一些花哨的转换代码才能使所有这些正常工作。我会尽可能引入带有接口的自定义控件或嵌入了转换功能的 DependencyProperties 等。
也就是说;我过去遇到过这个问题,公平地说,我只是放弃了 Frame
控件和页面,并全部手动完成。最后感觉更快,更容易维护,而且我能够达到我想要的任何效果。
所以如果你想要我诚实的回答就不要使用Frame
并手动完成...(这仅适用于 WPF。UWP 有与 WPF 相比,使用内置导航的其他功能和更多理由。)
好吧,我认为最简单的解决方案是放弃使用 Frames
并使用类似于 TransitioningContentControl 的内容实现您自己的导航机制(这样您就不必实现从头开始过渡)。
基本上,您会有一个控件列表、一个 TransitionContentControl
和两个按钮(后退和前进)。所以你所要做的就是处理按钮上的点击并相应地设置 Transition
(例如,当按下后退按钮时将其设置为 Left
并加载上一页)。
我有一个使用 WPF 制作的应用程序,我有多个页面和一个包含框架的表单,我将页面加载到一个框架上,每个页面都有后退和下一个按钮。
我想做的是在我按下下一步时以某种方式动画化框架上的页面导航,当前页面向左滑动,下一页也向左滑动并替换当前页面页面,当我按返回键时,当前页面向右滑动,上一页向右滑动,替换当前页面。
怎么做?
我在这里可能被证明是错误的,但我不相信 WPF 公开了一种轻松实现这一点的方法。 UWP.
中有覆盖现有过渡动画的方法对于 WPF,您可以通过以下两种方式之一处理此问题...
开始页面滑出动画。当动画是 完成让它触发一个事件,然后调用框架进行更改 页数。
页面默认偏移并执行动画滑动 回到原来的位置。
或....
捕获帧的
Navigating
事件,监听NavigationMode
,调用动画,让导航等待或标记e.Handled == true
,之后调用表示可以继续的标志。为过渡做同样的事情。
问题来了;您不会同时在屏幕上显示两个页面,您必须编写一些花哨的转换代码才能使所有这些正常工作。我会尽可能引入带有接口的自定义控件或嵌入了转换功能的 DependencyProperties 等。
也就是说;我过去遇到过这个问题,公平地说,我只是放弃了 Frame
控件和页面,并全部手动完成。最后感觉更快,更容易维护,而且我能够达到我想要的任何效果。
所以如果你想要我诚实的回答就不要使用Frame
并手动完成...(这仅适用于 WPF。UWP 有与 WPF 相比,使用内置导航的其他功能和更多理由。)
好吧,我认为最简单的解决方案是放弃使用 Frames
并使用类似于 TransitioningContentControl 的内容实现您自己的导航机制(这样您就不必实现从头开始过渡)。
基本上,您会有一个控件列表、一个 TransitionContentControl
和两个按钮(后退和前进)。所以你所要做的就是处理按钮上的点击并相应地设置 Transition
(例如,当按下后退按钮时将其设置为 Left
并加载上一页)。