我想以编程方式专注于 AutoCompleteBox ,并将其插入位置设置为 TextBox 。我们可以使用 Select(int,int)方法在TextBox上执行此操作,但AutoCompleteBox没有此功能。我们可以扩展AutoCompleteBox来实现这一目标吗?我正在使用C#。谢谢!
答案 0 :(得分:0)
您可以扩展AutoCompleteBox
课程,也可以直接在代码中获取TextBox
并调用Select
方法。
默认模板TextBox
中的AutoCompleteBox
被命名为“文字”,因此您可以调用yourAutoCompleteBox.Template.FindName("Text", yourAutoCompleteBox)
来获取TextBox
,或创建类似的派生类这样:
public class AutoCompleteBoxEx : AutoCompleteBox
{
private TextBox _textBox;
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
if (Template == null) return;
_textBox = Template.FindName("Text", this) as TextBox;
}
public void Select(int start, int length)
{
if (_textBox == null) return;
_textBox.Select(start, length);
}
}