I open-sourced my project to automate everything concerning TabTip integration in WPF app.
Simple to use
The easiest way to install the
WPFTabTip is using the Package Manager Console in Visual Studio:
PM> Install-Package WPFTabTip
One line of code in your startup logic, and you are good to go!
You can bind
TabTip automation logic to any
UIElement. Virtual Keyboard will open when any such element will get focus, and it will close when element will lose focus. Not only that, but
TabTipAutomation will move
Window) into view, so that
TabTip will not block focused element.
Hardware Keyboard Detection
TabTip automation will occur only if no hardware keyboard is detected.
You can change that behavior by setting
TabTipAutomation.IgnoreHardwareKeyboard to any of the following values:
public enum HardwareKeyboardIgnoreOptions
If you want to ignore specific keyboard, you should set
IgnoreIfSingleInstanceOnList, and add keyboard description to
To get description of keyboards connected to machine, you can use the following code:
new ManagementObjectSearcher(new SelectQuery("Win32_Keyboard")).Get()
.Where(k => k.Name == "Description")
.Select(k => k.Value as string))
Change Keyboard Layout
To specify keyboard layout to be used with certain element, you can set
InputScope property in XAML to one of the following: