我的可编辑combobox
上的自动完成功能可用于短项。
但是,如果所选字符串太宽且不适合combobox
,则可能是由于自动完成功能选择了字符串的其余部分而导致水平向右滚动。
这将隐藏用户正在键入的点的当前位置。
我如何获得它以使插入符的位置对用户可见?
<ComboBox x:Name="comboBoxCustomer"
ItemsSource="{Binding Source={StaticResource customerViewSource}}"
TextSearch.TextPath="CustomerDisplay"
SelectedValue="{Binding CustomerID, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
SelectedValuePath="ID"
SelectionChanged="comboBoxCustomer_SelectionChanged"
StaysOpenOnEdit="True"
IsEditable="True" >
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding CustomerDisplay}" Foreground="{Binding ActiveColour}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
最佳答案
在ScrollToHome
的textbox
上使用combobox
方法。
private void comboBoxCustomer_KeyUp(object sender, KeyEventArgs e)
{
TextBox tb = (TextBox)comboBoxCustomer.Template.FindName("PART_EditableTextBox", comboBoxCustomer);
tb.ScrollToHome();
}