如何使用滑动动画以编程方式在FlipView中导航

chr*_*bel 7 winrt-xaml windows-store-apps windows-8.1

Windows开发人员中心声明了该UseTouchAnimationsForAllNavigation属性:

XAML FlipView控件支持三种导航模式; 基于触摸,基于按钮和程序化.当用户通过触摸进行导航时,FlipView项目可以平滑地滚动到视图中.将此属性设置为true时,无论导航是基于触摸的,基于按钮还是编程导航,都会出现相同的导航动画.

我正在通过分配SelectedItemFlipView 的属性从我的页面代码导航:

FlipView.SelectedItem = FlipView.Items.Last();
Run Code Online (Sandbox Code Playgroud)

但是,滑动动画不会显示.我该如何启用它?

chr*_*bel 11

与此同时,我能够解决这个问题.我有一个按钮,可以触发导航到下一个FlipViewItem.然而,此按钮被放置在FlipViewItem中.

使用我的设置(触摸设备),没有任何事情发生.然后我尝试用鼠标点击按钮,它工作.禁用后UseTouchAnimationsForAllNavigation,它也可以使用触摸输入.在我的测试中,我将按钮放在FlipView之外,它确实可以使用动画.

这是问题:当点击按钮时,导航动画尝试启动(SelectedIndex设置正确),但因为用户仍然触摸按钮而阻止动画,因此停止了.因此,导航被取消并SelectionChanged报告当前页面.

解决方案是ManipulationMode将Button 设置为All.之后,您无法在触摸按钮时翻转FlipViewItem,但动画会执行并且它会像魅力一样工作.

  • 仅供参考和所有可能遇到此问题的人:这仍然适用于Windows 10 Universal应用程序. (3认同)