如何向用户显示他们在IsEditable ComboBox中输入的内容?

时间:2014-08-06 16:29:46

标签: c# wpf combobox

当用户键入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。但是,这仅在使用鼠标从组合框的下拉部分中拾取项目时有效。

0 个答案:

没有答案