UWP开发中ListView控件无法滚动,列表项正常展示求解决方案
问题原因
UWP ListView无法滚动的核心问题出在布局属性配置上:
你为ListView设置了VerticalAlignment="Top",该属性会让ListView的高度自动匹配内部所有列表项的总高度,而非被限制在父容器的可视高度范围内。相当于整个ListView被完整展开,不存在“可视区域小于内容总高度”的滚动触发前提,自然无法触发滚动逻辑。
解决方案
- 调整ListView垂直对齐属性
将现有代码中ListView的VerticalAlignment="Top"修改为VerticalAlignment="Stretch",修改后对应代码如下:
<ListView x:Name="NewsFeedList" x:FieldModifier="public" Padding="15,15,15,15" FontFamily="Segoe UI Variable Display" SelectionMode="None" VerticalAlignment="Stretch" Margin="10,0,0,0">
- 检查上层父容器布局
确认ListView的所有上层布局容器不要使用StackPanel,StackPanel会无限拉伸内部子元素的对应方向尺寸,同样会导致ListView高度无限制、无法滚动。建议使用Grid作为ListView的上层容器,Grid会自动将子元素尺寸限制在自身可视范围内。
注:此处要求父容器使用Grid,指的是ListView的上层布局容器,不是让你手动用Grid渲染所有列表项,不会影响你动态绑定网络拉取的列表数据的逻辑。
- 可选补充配置
如果需要明确控制滚动条行为,可以给ListView额外添加以下属性:
ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollMode="Enabled"
内容的提问来源于stack exchange,提问作者happyman090
相关产品推荐
相关产品推荐

