每次我在 WPF 中加载时如何使 Listbox 的 ScrollViewer 滚动到顶部
Posted
技术标签:
【中文标题】每次我在 WPF 中加载时如何使 Listbox 的 ScrollViewer 滚动到顶部【英文标题】:how to make ScrollViewer of Listbox to scroll to Top every time I Load it in WPF 【发布时间】:2021-10-29 19:59:01 【问题描述】:我有一个包含图像作为项目的列表框。我们可以选择图像,它将在图像查看器中显示图像。现在的问题是,当我加载它时,scrollViewer 会移动到列表框中先前选择的项目,而不是第一个项目。每次加载时,我需要做什么才能使 Listbox 的 scrollViewer 位于顶部?
【问题讨论】:
【参考方案1】:您始终可以使用ListBox.ScrollIntoView
将特定项目滚动到视图中:
if (listBox.Items.Count > 0)
object firstItem = listBox.Items[0];
listBox.ScrollIntoView(firstItem);
【讨论】:
我们如何访问viewmodel中的列表框数据,因为我们只能使用它们xaml.cs文件,我需要从Viewmodel处理 不,这绝不是视图模型的责任。视图模型只允许选择数据模型,但它通常不知道滚动查看器或数据模型的可视化表示。您最初的问题非常广泛并且缺少关键细节,这就是为什么我只能给您这个广泛的答案 - 广泛的问题只能得到广泛的答案。您基本上必须找到一个视图事件并处理它(并执行上面的代码)。什么活动适合您(例如ListBox.SelectionChanged
或 Image.Loaded
- 我不知道)以上是关于每次我在 WPF 中加载时如何使 Listbox 的 ScrollViewer 滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章
使用 gon-wpf 的 ListBox 拖放 - 使选择保持活动状态