【问题标题】:WPF Toolkit AutoCompleteBox Programmatically Set Caret PositionWPF 工具包 AutoCompleteBox 以编程方式设置插入符号位置
【发布时间】:2014-02-03 17:36:26
【问题描述】:

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

【问题讨论】:

    标签: wpf autocomplete wpftoolkit toolkit autocompletebox


    【解决方案1】:

    您可以扩展AutoCompleteBox 类,或者直接在代码中获取TextBox 并调用Select 方法。

    AutoCompleteBox 默认模板中的TextBox 被命名为“Text”,因此您可以调用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);
        }
    }
    

    【讨论】:

    • 谢谢,莱昂!我会试试这个。
    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多