【问题标题】:How to know if a displayed listboxItem is in a WPF ListBox如何知道显示的 listboxItem 是否在 WPF ListBox 中
【发布时间】:2020-05-05 13:09:13
【问题描述】:

我如何知道呈现的 listboxItem 是否在 WPF ListBox 中? 我想获取屏幕中显示的列表框项目,因为我想像自动滚动时一样将底部的项目移动到屏幕的顶部。

我已经在 Google 上搜索过,但找不到答案,我使用了如下方法,但它不适用于呈现的项目:

MyViewModel myViewModel = LbList.Items.getItemAt(0);
LbChatList.ScrollIntoView(myViewModel);

【问题讨论】:

  • 您可以使用 ListBox 的 ItemContainerGenerator 来查找视口中的项目数,然后您可以遍历这些项目并检查容器的可见性,但我认为您不会这样做能够使用标准 ListBox 产生您所追求的行为。 ScrollIntoView 不会给你那种行为。您需要从头开始编写自定义控件
  • @DeanChalk 感谢您的回复。我得到了两个关于 ListBox 的信息。
  • 欢迎来到 SO!询问时使用清晰的语言很重要。如果英语不是您的主要语言,请随时要求同行审查您的问题并帮助澄清它。当我们试图理解和/或纠正它时,这有助于避免出现问题。请参阅“How to Ask”和链接页面。

标签: wpf listbox itemrenderer


【解决方案1】:

在“Scroll ListViewItem to be at the top of a ListView”中,有人使用了 listView,但我使用了列表框。

我可以更轻松地使用 ScrollViewer:

ScrollViewer myScrollviwer = FindVisualChild<ScrollViewer>(myListBoxObject);

【讨论】:

  • 这应该回答你的问题吗?如果没有,请考虑改为编辑您的问题。
  • @Clemens 是的,这是我对我的问题的回答。我用它解决了我的问题
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多