C# 在UWP应用程序的ListView中,ScrollViewer与多个GridView的组合无法正常工作
我正在使用C# 在UWP应用程序的ListView中,ScrollViewer与多个GridView的组合无法正常工作,c#,listview,gridview,uwp,uwp-xaml,C#,Listview,Gridview,Uwp,Uwp Xaml,我正在使用gridview表示不同文件夹的文件。具有一行和水平方向的gridview在垂直列表视图中排序 在这里,您可以从代码中得到一个想法: <ListView ItemSource={Binding CollectionOfFolders}> <ListView.ItemTemplate> <GridView> <GridView.ItemsPanel> &l
gridview
表示不同文件夹的文件。具有一行和水平方向的gridview
在垂直列表视图中排序
在这里,您可以从代码中得到一个想法:
<ListView ItemSource={Binding CollectionOfFolders}>
<ListView.ItemTemplate>
<GridView>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Loaded="WrapGridLoaded"
MaximumRowsOrColumns="1"
Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
...
</GridView.ItemTemplate>
</GridView>
</ListView.ItemTemplate>
</ListView>
...
这里有一个视觉印象:
问题是如何处理垂直和水平滚动
使用toch input时,everythings按所需方式工作:当您上下移动手指时,您可以在列表视图(文件夹)中滚动。如果水平移动手指,则可以在GridView(文件)中滚动
当使用鼠标滚轮或触摸板进行双指滚动手势时,问题出现了:当指针分别位于任何项目或文件上时,它不会影响ListView。所有手势都只影响gridview
我尝试禁用和启用垂直和水平滚动模式、IsVertical/HorizontalModeChanningEnabled属性以及滚动条和滚动条可见性的效果
我提出了这些与问题相关的问题,但我可以为我刚才提到的这个具体问题找到解决方案:
如果有人有想法,甚至有解决方案,那就太好了
当使用带有两个手指滚动手势的鼠标滚轮或触摸板时,问题来了:当指针分别位于任何项目或文件上时,它不会影响ListView。所有手势都只影响gridview
问题是,GridView
项在聚焦时会捕获鼠标滚轮和双点滚动手势。根据您的需要,您可以手动禁用此功能
您可以使用内部GridView
项PointerEntered
和ViewChanged
事件来实现此效果。当内部GridView
项目滚动到顶部或底部时,使其ScrollMode
被禁用,同时当指针进入内部GridView
项目时,我们使内部GridView
项目被启用
我在msdn中找到了,它有完整的回复,您可以参考 谢谢你的回复。我试图调整您链接到我的代码的解决方案。GridView的ScrollViewer有问题。您无法调整ViewChanged方法的大小,或者至少我无法找到解决方案。您建议在某个事件发生后禁用SrollMode是个好主意。我找到了PointerHeelChanged事件,它具有识别horizontalMousWheel(和touch)操作的属性。GridView没有此事件(请参阅)。但是ListView已经实现了。我会让你了解我的流程。我必须纠正我自己。ListView中不会出现PointerWheel Changed事件(请参见)是否找到最终解决方案?