# WPFTabTip **Repository Path**: DLGCY_Clone/WPFTabTip ## Basic Information - **Project Name**: WPFTabTip - **Description**: Simple TabTip / Virtual Keyboard integration for WPF apps on Win 8.1 and Win 10(克隆自:https://github.com/maximcus/WPFTabTip) - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-06-07 - **Last Updated**: 2023-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WPFTabTip Simple TabTip / Virtual Keyboard integration for WPF apps on Win 8.1 and Win 10 ## Simple to use The easiest way to install the WPFTabTip is using the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) in Visual Studio: ~~~powershell PM> Install-Package WPFTabTip ~~~ One line of code in your startup logic, and you good to go! ```c# TabTipAutomation.BindTo(); ``` 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 `UIElement` (or `Window`) into view, so that TabTip will not block focused element. ## Hardware keyboard detection By default 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: ```c# public enum HardwareKeyboardIgnoreOptions { /// /// Do not ignore any keyboard. /// DoNotIgnore, /// /// Ignore keyboard, if there is only one, and it's description /// can be found in ListOfKeyboardsToIgnore. /// IgnoreIfSingleInstanceOnList, /// /// Ignore keyboard, if there is only one. /// IgnoreIfSingleInstance, /// /// Ignore all keyboards for which the description /// can be found in ListOfKeyboardsToIgnore /// IgnoreIfOnList, /// /// Ignore all keyboards /// IgnoreAll } ``` If you want to ignore specific keyboard you should set `TabTipAutomation.IgnoreHardwareKeyboard` to either `IgnoreIfSingleInstanceOnList` or `IgnoreIfOnList`, and add keyboard description to `TabTipAutomation.ListOfKeyboardsToIgnore`. To get description of keyboards connected to machine you can use following code: ```c# new ManagementObjectSearcher(new SelectQuery("Win32_Keyboard")).Get() .Cast() .SelectMany(keyboard => keyboard.Properties .Cast() .Where(k => k.Name == "Description") .Select(k => k.Value as string)) .ToList(); ``` ## 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: - Default - Url - EmailSmtpAddress - Number