我有一个使用wpf制造的应用程序,我有多个页面和一个包含帧的表单,然后我将页面加载到框架上,并且每个页面都有回音和下一个按钮。
我想做的是以某种方式对框架上的页面的导航进行动画动画,而当前页面向左滑动,下面的页面也向左幻灯片,并替换当前页面,当我按下当前页面向右滑动时,上一页向右滑动以更换当前页面。
如何做?
我可能在这里被证明是错误的,但我不相信 wpf 揭示了一种轻松实现的方法。有一些方法可以覆盖 uwp 的现有过渡动画。
对于 WPF 您可以处理这两种方法之一...
-
启动页面的动画滑动。当动画是完成让它开火的事件,然后将框架调用以更改页。
默认情况下的页面偏移并执行动画以滑动它在原来的位置。
或....
-
捕获框架的
Navigating
事件,MonitorNavigationMode
,调用动画,进行导航等待或标记e.Handled == true
,然后用一个标志以可以继续的标志来回顾它。在过渡。
中做同样的事情
这是问题;您不会同时在屏幕上都有这两个页面,因此您必须编写一些精美的过渡代码才能使所有这些工作正确。我会走到带有嵌入过渡功能的接口或依赖关系的自定义控件等。
也就是说;过去,我遇到了这个问题,公平地说,我只是放弃了Frame
的控制和页面,并手动完成了所有操作。最后,感觉更快,更易于维护,我能够达到我想要的任何效果。
因此,如果您想要我的诚实答案,请不要使用Frame
,然后手动进行 ...(这仅适用于WPF。UWP具有其他功能,还有更多理由使用构建在导航中比WPF所做的。)
好吧,我相信最简单的解决方案是使用 Frames
删除并使用沿TrustritioningContentControl的事物实现自己的导航机制(因此您不必从刮擦)。
基本上,您将拥有一个控件列表,一个TransitionContentControl
和两个按钮(后向前)。因此,您要做的就是处理按钮上的单击并相应地设置Transition
(例如,按下后按钮时,将其设置为Left
并加载上一页)。