如何“获取”WPF组合框PART_EditableTextbox,因为组合框没有突出显示?

时间:2010-08-10 15:48:19

标签: wpf combobox focus

每次点击按钮时,我的WPF组合框都会填充一组不同的字符串。窗口上还有其他控件。组合框是窗口中的“第一个”(顶部),但文本没有突出显示。当用户选中控件时,文本会突出显示,但是当它是窗口中的第一个时,它不会突出显示。

也许我需要在组合框本身内的单个文本框控件上强制突出显示,但我该如何做?我似乎无法在任何地方找到此控件的内部“结构”。有人可以帮忙吗?

杰克

2 个答案:

答案 0 :(得分:25)

获取Combobox的TextBox,你可以使用

TextBox TxtBox = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo); 

答案 1 :(得分:1)

我不确定它是最好的解决方案,但您可以使用FrameworkElement.FindName来访问子控件 - 它保证存在于组合框中,因为它是控件的关键组成部分。

那说,尝试在控件上调用.Focus()是不是更好?这可能就是为什么当你选项卡时,会提供突出显示。

另一种选择是从ComboBox派生,并将子文本框作为属性公开,允许您设置它的选择,或直接将方法添加到组合框以为您设置。