ListBox 总是滚动到打开 ComboBox 的项目

Posted

技术标签:

【中文标题】ListBox 总是滚动到打开 ComboBox 的项目【英文标题】:ListBox always scrolls to item with open ComboBox 【发布时间】:2022-01-19 08:12:22 【问题描述】:

我使用包含 ListBoxItem 样式的自定义字典创建了一个 ListBox,自定义项包含两个 ComboBox。但是,当我单击不在列表顶部的项目的组合框时,列表会自动滚动,因此打开组合框的项目位于列表顶部。 它看起来很奇怪,所以我想让它停下来。

我已经将 ListBox 更改为 ListView 并将 Itemtemplate 更改为 ListBoxItem 但它没有改变任何内容。

我会很高兴任何建议谢谢。

【问题讨论】:

【参考方案1】:

您可以使用自定义样式和RequestBringIntoView-event 的事件设置器覆盖此“滚动行为”:

<ListView.ItemContainerStyle>
    <Style TargetType="x:Type ListViewItem">
         <EventSetter Event="RequestBringIntoView" Handler="MyListView_OnRequestBringIntoView"/>
    </Style>
</ListView.ItemContainerStyle>


private void MyListView_OnRequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)

    e.Handled = true;

【讨论】:

非常感谢它完美地解决了

以上是关于ListBox 总是滚动到打开 ComboBox 的项目的主要内容,如果未能解决你的问题,请参考以下文章

猎豹MFC--下拉框ComboBox 列表框ListBox

winform中的ListBox和ComboBox绑定数据用法实例

ListBox 中的所有 ComboBox 在其中任何一个更改时都会更改

vb comboBOx和listBox两个属性有啥不同?

WPF中ListBox滚动时的缓动效果

VBA ListBox和ComboBox显示错误的字符