WPF工具包AutoCompleteBox以编程方式设置插入位置

时间:2014-01-15 09:59:15

标签: wpf autocomplete wpftoolkit toolkit autocompletebox

我想以编程方式专注于 AutoCompleteBox ,并将其插入位置设置为 TextBox 。我们可以使用 Select(int,int)方法在TextBox上执行此操作,但AutoCompleteBox没有此功能。我们可以扩展AutoCompleteBox来实现这一目标吗?我正在使用C#。谢谢!

1 个答案:

答案 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);
    }
}