当用户键入IsEditable ComboBox时,会自动搜索项目,显示最接近的匹配项,并且当用户键入时,可以选择更接近的匹配项。这很有效。
除非项目的字符串表示长于组合框宽。然后我们遇到了问题。据我了解,当通过键入选择太长的匹配时,底层的TextBox光标设置在右侧,其中"右对齐"该项目可能隐藏在用户实际键入的位置。在这个示例gif中,键入" ABC"很好,因为它适合。打字" PQR"选择正确的项目,但用户无法看到他们正在键入的内容:http://i.imgur.com/BrhAvrY.gif
此StackOverflow问题中描述了此问题: How to move my cursor to the left in in my ComboBox?
在这个MSDN主题中回答: http://social.msdn.microsoft.com/forums/en-us/wpf/thread/E86484FB-D7BE-4E04-8E66-0D12326817C8
答案是挂钩DropDownClosed事件,在ComboBox的可视树中找到TextBox,并设置TextBox的SelectionStart和SelectionLength。但是,这仅在使用鼠标从组合框的下拉部分中拾取项目时有效。