You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP ListView:如何修改BringIntoView以双向显示部分相邻项

ListView调用BringIntoView时显示相邻项部分内容

我正在开发一个包含多项的ListView,支持用户上下滚动。需求是:调用BringIntoView时,除了将目标项显示在视图中,还要展示滚动方向上相邻项的一小部分,以此提示用户列表还有上方或下方的内容。

我制作了简化测试应用调试该功能,期望效果如下:

  • 箭头指示滚动方向
  • 红色括号标注的是需要显示的相邻项区域

目标项滚动后显示下方相邻项的效果
目标项滚动后显示上方相邻项的效果

若有需要澄清的地方,请告知。

已尝试的方案

  • 为ItemsPresenter/ScrollViewer/ListView设置正负margin
  • 处理ListView.SelectionChanged事件,通过计算判断滚动方向,调用ScrollViewer.ChangeView传入计算后的垂直偏移值
  • 处理ListView.BringIntoViewRequested事件,设置args.Handled = true,并使用不同BringIntoViewOptions参数(含VerticalOffset、VerticalAlignmentRatio和调整Y值的新TargetRect)发起新请求

我参考了相关问题尝试BringIntoViewOptions方案,但所有尝试均未成功。期望保留现有BringIntoView功能,同时让目标项滚动至能显示相邻项一小部分的位置。

内容的提问来源于stack exchange,提问作者john-g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:20:23