自动填充会导致文本向右滚动

时间:2016-06-16 10:36:27

标签: c# wpf combobox autocomplete

我的可编辑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>

2 个答案:

答案 0 :(得分:3)

ScrollToHome的{​​{1}}上使用textbox方法。

combobox

答案 1 :(得分:0)

你应该试试这个。

<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}" **TextAlignment="Left"** />
      </DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>