ListBox 总是滚动到打开 ComboBox 的项目
ListBox always scrolls to item with open ComboBox
我使用包含 ListBoxItem 样式的自定义词典创建了一个列表框,自定义项包含两个组合框。但是,当我单击不在列表顶部的项目的组合框时,列表会自动滚动,因此带有打开组合框的项目位于列表顶部。
看起来真的很奇怪,所以我想让它停下来。
我已经将 ListBox 更改为 ListView,并将 Itemtemplate 更改为 ListBoxItem,但它并没有改变任何东西。
我很乐意接受任何建议,谢谢。
您可以使用自定义样式和 RequestBringIntoView
-事件的事件-setter 覆盖此“滚动行为”:
<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;
}
我使用包含 ListBoxItem 样式的自定义词典创建了一个列表框,自定义项包含两个组合框。但是,当我单击不在列表顶部的项目的组合框时,列表会自动滚动,因此带有打开组合框的项目位于列表顶部。 看起来真的很奇怪,所以我想让它停下来。
我已经将 ListBox 更改为 ListView,并将 Itemtemplate 更改为 ListBoxItem,但它并没有改变任何东西。
我很乐意接受任何建议,谢谢。
您可以使用自定义样式和 RequestBringIntoView
-事件的事件-setter 覆盖此“滚动行为”:
<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;
}