WPF AutoCompleteBox As Real UserControl (.dll)
Recently I developed an AutoCompleteBox as a UserControl for WPF Applications (VB.NET). I decided to change the downloadable file to a real UserControl, so that it is usable in every WPF Project (C# or VB.NET).
An AutoCompleteBox is still not a part of the WPF-Controls although it is a very useful tool. The latest Version (1.0.0.2) works reliable and it has the basic functionalities of an AutoCompleteBox.
You can download the WPF AutoCompleteBox as a compiled and reusable .dll file.

AutoCompleteBox with Style (rounded edges)

IsCaseSensitive and SearchMatchInside set to True
For my solution of an AutoCompleteBox I used a Popup in which I nested a ListBox. The Popup appears everytime matches are found and disappears when there are no further matches. Before I started I looked around on the internet but I did not found any solution that uses Popup. Other solutions I found are using a ComboBox hidden behind a TextBox. I prefer my solution with a Popup because it's a bit smarter.
For the navigation between the TextBox and the ListBox within the Popup (and vice versa) you can use mouse OR keyboard! Most users and me too do prefer the keyboard navigation.
Press TAB or ARROWDOWN to set the focus from the TextBox into the Popup-ListBox.
Press ESC to close the Popup-ListBox while the TextBox has the focus.
The navigation within the Popup-ListBox is default (TAB/BACK or ARROWUP/ARROWDOWN). Press BACK to navigate from the first ListBoxItem back into the TextBox.
Press RETURN within the Popup-ListBox to choose a selected match and to take it into the TextBox.
To get the current text value use the .GetText property and use .SetText property to set it programmatically.
Features:
NOTE: To avoid the error "Parameter can not be a zero-length string. Parameter Name elementName." while compiling / debugging your WPF project do the following:
In the XAML code of your WPF project give the application main Window a name explicitly; e.g. Name="mainWindow".
Have fun with it. Feedback is welcome.