autocompletebox专注于wpf

kar*_*tal 8 c# wpf autocomplete

当我试着把注意力集中在我的"autocompletetextbox"上时,我写的很失败,autocompletetextbox.focus() 但是光标仍然集中在另一个我应该做什么或写什么以便能够写入或焦点?

Jay*_*Jay 8

我经历了同样的事情 - 它在当前形式下无法正常工作(我希望你在谈论2010年2月发布的WPFToolkit附带的AutoCompleteBox).

我创建了一个子类:

public class AutoCompleteFocusableBox : AutoCompleteBox
{
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var textbox = Template.FindName("Text", this) as TextBox;
        if(textbox != null) textbox.Focus();
    }
}
Run Code Online (Sandbox Code Playgroud)

这将焦点设置TextBox为默认值的实际(称为"文本")ControlTemplate.


Pas*_*lsz 5

您必须覆盖Focus方法才能找到Textbox的模板.

public class FocusableAutoCompleteBox : AutoCompleteBox
{
    public new void Focus()
    {
        var textbox = Template.FindName("Text", this) as TextBox;
        if (textbox != null) textbox.Focus();
    }
}
Run Code Online (Sandbox Code Playgroud)


noo*_*bar 5

这是一个非常古老的问题,但我想分享我的解决方法.

Keyboard.Focus(autocompletetextbox);
autocompletetextbox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
Run Code Online (Sandbox Code Playgroud)

这部作品在WPFToolkit v3.5.50211.1Visual Studio Express 2015 for Windows Desktop