【问题标题】: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);
}
}