我如何包装ListView和GridView在ScrollViewer不破坏ScrollViewer滚动
本文关键字:ScrollViewer GridView 滚动 ListView 何包装 包装 | 更新日期: 2023-09-27 17:50:21
我有这样的布局:
<ScrollViewer>
<StackPanel>
<ListView>
<ListView.View>
<GridView>
<!-- Content -->
</GridView>
</ListView.View>
</ListView>
<!-- Filtering Controls -->
</StackPanel>
</ScrollViewer>
屏幕没有固定高度或最大高度。滚动条显示良好,工作良好,但是当鼠标在列表/GridView中的项目上时,ScrollViewer没有接收到事件,也没有滚动。
我读过关于如何实现扩展,但这似乎做过头了,使列表/GridView传递鼠标滚轮滚动事件到ScrollViewer或忽略它们的最简单的解决方案是什么?
这是因为listview处理滚动事件,我可以建议的最简单的方法是覆盖listview的内容并插入一个itemsPresenter,其中没有滚动属性。
我用这样的方法解决了这个问题。
<ListView>
<ListView.Template>
<ControlTemplate>
<ItemsPresenter/>
</ControlTemplate>
</ListView.Template>
</ListView>
请看这里关于这个话题的详细讨论