Xaml 使用嵌套的ScrollViewer忽略水平鼠标滚动
我有一个ScrollViewer围绕网格垂直滚动它的内容Xaml 使用嵌套的ScrollViewer忽略水平鼠标滚动,xaml,uwp,Xaml,Uwp,我有一个ScrollViewer围绕网格垂直滚动它的内容 <ScrollViewer> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> ... </Grid> </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;
}