autocompletebox focus in wpf

You will have to override the Focus method to find the template of the Textbox.

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

I experienced the same thing -- it does not work properly in its current form (I expect you're talking about the AutoCompleteBox that comes with the February 2010 release of WPFToolkit).

I created a subclass:

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

This sets focus to the actual TextBox (called "Text") that is part of the default ControlTemplate.


This is very old question, but I want to share my work-around.

Keyboard.Focus(autocompletetextbox);
autocompletetextbox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

This works in WPFToolkit v3.5.50211.1 on Visual Studio Express 2015 for Windows Desktop