如何在 windows 商店应用程序中的 c# 中禁用轻扫导航的 flipview 触摸
How to disable swipe navigation of flipview on touch in c# in windows store apps
我开发了一个应用程序,在该应用程序中,我在翻页视图中有多个页面。
现在我只想在触摸时停止滑动导航。我已经使用 Isenabled 属性 但是
这也将禁用 flipview 的内容,我只是想禁用它的导航但允许用户与其内容交互,因为我需要拖放以及放大和缩小其内容。
请帮助我解决问题。
为了在不影响 FlipViewItem 内容的情况下禁用 FlipView 的滑动导航,请覆盖 ControlTemplate 并将 ItemsPresenter 中的 ManipulationMode 更改为 None,并将以下代码放入 FlipView 中:
<FlipView.Template>
<ControlTemplate>
<ItemsPresenter ManipulationMode="None"></ItemsPresenter>
</ControlTemplate>
</FlipView.Template>
我已经测试过了,没问题。
您可以通过将 ManipulationMode 设置为 TranslateX 并将以下代码放入您的 FlipView 来尝试此方法:
xaml:
<FlipView Width="300" Height="300" Name="MyFlipView">
<FlipViewItem ManipulationMode="TranslateX" ManipulationDelta="FlipViewItem_ManipulationDelta">
<Image Source="Assets/1.jpg" ></Image>
</FlipViewItem>
<FlipViewItem ManipulationMode="TranslateX" ManipulationDelta="FlipViewItem_ManipulationDelta">
<Image Source="Assets/2.jpg" ></Image>
</FlipViewItem>
</FlipView>
隐藏代码:
private void FlipViewItem_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.Delta.Translation.X != 0)
{
e.Handled = true;
}
}
我开发了一个应用程序,在该应用程序中,我在翻页视图中有多个页面。
现在我只想在触摸时停止滑动导航。我已经使用 Isenabled 属性 但是
这也将禁用 flipview 的内容,我只是想禁用它的导航但允许用户与其内容交互,因为我需要拖放以及放大和缩小其内容。
请帮助我解决问题。
为了在不影响 FlipViewItem 内容的情况下禁用 FlipView 的滑动导航,请覆盖 ControlTemplate 并将 ItemsPresenter 中的 ManipulationMode 更改为 None,并将以下代码放入 FlipView 中:
<FlipView.Template>
<ControlTemplate>
<ItemsPresenter ManipulationMode="None"></ItemsPresenter>
</ControlTemplate>
</FlipView.Template>
我已经测试过了,没问题。
您可以通过将 ManipulationMode 设置为 TranslateX 并将以下代码放入您的 FlipView 来尝试此方法:
xaml:
<FlipView Width="300" Height="300" Name="MyFlipView">
<FlipViewItem ManipulationMode="TranslateX" ManipulationDelta="FlipViewItem_ManipulationDelta">
<Image Source="Assets/1.jpg" ></Image>
</FlipViewItem>
<FlipViewItem ManipulationMode="TranslateX" ManipulationDelta="FlipViewItem_ManipulationDelta">
<Image Source="Assets/2.jpg" ></Image>
</FlipViewItem>
</FlipView>
隐藏代码:
private void FlipViewItem_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.Delta.Translation.X != 0)
{
e.Handled = true;
}
}