在WPF
中,有没有办法禁用每当用户到达列表末尾时自动滚动到列表顶部的ComboBox
的滚动行为?我宁愿列表停留在最后,用户必须手动滚动回到顶部。
继承了ComboBox
<ComboBox x:Name="CellProviderCombo" HorizontalAlignment="Left" Height="65" Margin="14,405,0,0" VerticalAlignment="Top" Width=" 327" Header="Cell Provider" PlaceholderText="Choose Cell Provider" DataContext="{StaticResource GlobalVars}" ItemsSource="{Binding GlobalShopInfo.CellProviders}" DisplayMemberPath="Name" SelectedValuePath="Name" IsDoubleTapEnabled="False"/>
正如我所说,如果你滚过组合框中的最后一个元素,它只会从底部开始,滚动条会自动回到顶部。
答案 0 :(得分:5)
原来,WPF中的ComboBox
与Windows应用ComboBox
中使用的Windows.UI.Xaml
不同。
Windows Apps中使用的ComboBox
使用Carousel
代替StackPanel
来显示其项目。其中一个影响是当你到达列表的末尾时,它就会循环回到顶部。解决方案是手动将ItemsPanelTemplate
更改为StackPanel
,如下所示:
<ComboBox x:Name="MyComboBox"> //Add other properties in this line as well if needed
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
希望这可以帮助任何有类似问题的人。