c# - WPF 列表框在 SelectedItem 之后显示下一个元素

标签 c# .net wpf listbox listboxitem

我有带有一堆元素的 TextBox 和 ListBox。

TextBox 有 KeyDown 事件处理程序,其背后的想法是允许用户在焦点位于 TextBox 上时按向上和向下键在 ListBox 内滚动。

当用户多次按下“向下键”时,所选元素成为屏幕上最后一个可见元素。如果用户已经到达屏幕上可见列表元素的底部,我希望他也能看到所选元素之后的下一个元素。

最佳答案

查看ScrollIntoView列表框上的方法。您可以使用它来确保所选元素的下一个元素始终可见。

按向下箭头:

if (listbox.SelectedIndex < listbox.Items.Count - 1)
    listbox.ScrollIntoView(listbox.Items[listbox.SelectedIndex + 1]);

按向上箭头:

if (listbox.SelectedIndex > 0)
    listbox.ScrollIntoView(listbox.Items[listbox.SelectedIndex - 1]);

关于c# - WPF 列表框在 SelectedItem 之后显示下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851912/

相关文章:

c# - VB6 中的 DotNet COM,没有强名称

c# - 图片框 - 工具提示文本 (.NET 2.0 - C#)

wpf - 如何确保客户端保持连接到 WPV MVVM 应用程序中的 WCF 服务?

c# - 在 WPF 的代码隐藏中更改字体样式

c# - 如何为具有多个目标的 CSPROJ 生成 XML 文档

c# - 如何在从中删除项目之前在管道 block 中执行任务直到集合已满

c# - 如何从对 JScript.NET 的 Eval 调用返回 JSON 字符串?

c# - dotnet 还原警告 NU1701

c# - delegate.Invoke 是如何工作的?

WPF 键手势 PageDown 在菜单项中显示为“Next”