Xaml 使用嵌套的ScrollViewer忽略水平鼠标滚动

Xaml 使用嵌套的ScrollViewer忽略水平鼠标滚动,xaml,uwp,Xaml,Uwp,我有一个ScrollViewer围绕网格垂直滚动它的内容 <ScrollViewer> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> ... </Grid> </ScrollViewer> 使用此配置,即使鼠标位于水平滚动查看器中,我也可以垂直滚动页面。以下是一张图片,让您了解: 问题在于触摸。当用户使用触摸设备时,我如何仍

我有一个ScrollViewer围绕网格垂直滚动它的内容

<ScrollViewer>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    ...
    </Grid>
</ScrollViewer>
使用此配置,即使鼠标位于水平滚动查看器中,我也可以垂直滚动页面。以下是一张图片,让您了解:

问题在于触摸。当用户使用触摸设备时,我如何仍能水平滚动?当我启用
HorizontalScrollMode
时,触摸按需要工作,但使用鼠标时,它会水平滚动,我试图阻止这种滚动


有没有一种方法可以忽略嵌套滚动查看器的水平滚动?

我找到了一个非常简单的解决方案

我已经在嵌套的水平滚动查看器中添加了一个
PointerEntered

<ScrollViewer Name="ScrollViewer" PointerEntered="ScrollViewerImages_PointerEntered" VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Disabled" HorizontalScrollMode="Disabled" HorizontalScrollBarVisibility="Hidden">
...
</ScrollViewer>

听起来像是关于
IsHorizontalScrollChainEnabled
应该如何工作的工作?当我在child scrollviewer上将其设置为false时,没有区别,水平滚动仍处于启用状态。是否将其用作附加属性?否,我只是将其添加到child scrollviewer中,如
。我应该把附加属性放在什么元素上?文档总是一个好的开始,孩子。如果我以后有时间,我会做一个样品和测试。
private void ButtonRight_Tapped(object sender, TappedRoutedEventArgs e)
{  
    ScrollViewer.ChangeView(ScrollViewer.HorizontalOffset + ScrollViewer.ActualWidth, 0, 1);
}
<ScrollViewer Name="ScrollViewer" PointerEntered="ScrollViewerImages_PointerEntered" VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Disabled" HorizontalScrollMode="Disabled" HorizontalScrollBarVisibility="Hidden">
...
</ScrollViewer>
private void ScrollViewerImages_PointerEntered(object sender, PointerRoutedEventArgs e)
{
    if (e.Pointer.PointerDeviceType == PointerDeviceType.Touch)
        ScrollViewerImages.HorizontalScrollMode = ScrollMode.Enabled;
    else
        ScrollViewerImages.HorizontalScrollMode = ScrollMode.Disabled;
}