在嵌套的 FlipView 中禁用对角线平移

Disable diagonal panning in nested FlipView

我的XAML大致如下

<FlipView>
    <FlipViewItem>
        <Grid Height="400" Background="Blue"/>
    </FlipViewItem>
    <FlipViewItem>
        <Grid>
            <FlipView x:Name="DigestFlipView" Style="{StaticResource DigestViewStyle}"/>
        </Grid>
    </FlipViewItem>
</FlipView>

然后在我的 DigestViewStype 中,我将其垂直设置如下:

<Setter Property="ItemsPanel">
    <Setter.Value>
        <ItemsPanelTemplate>
            <ItemsStackPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
    </Setter.Value>
</Setter>

我想要的是,当垂直滑动时,内部FlipView应该开始。此外,当水平滑动时, 外部 FlipView 应该开始。

如果我将内部 FlipView 替换为 ListView,我将获得所需的行为。 ListView 垂直滑动滚动,水平滑动 FlipView 滚动。我试过玩模板但没有运气。有没有办法用 FlipViews 实现我所需要的?

一个ScrollViewer可以水平滚动。 ScrollViewer 可以垂直滚动。而且,ScrollViewer 可以水平和垂直滚动 - 您将这第三种情况称为“对角线”滚动。

A ScrollViewer 有一个功能,一旦它开始水平或垂直滚动​​,它就不再滚动相反的方向。听起来这就是你想要的。此功能称为“rails”。

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.scrollviewer.ishorizontalrailenabled.aspx

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.scrollviewer.isverticalrailenabled.aspx