FPS Virtual Keyboard for WPF


On-Screen Virtual Keyboard with customizable layouts and languages, a number of predefined themes.

The number of applications running on touch screen terminals is increasing. The WPF virtual keyboard input system is an essential feature ensuring seamless user experience. A common example of a touch screen virtual keyboard app is the automated checkout terminal. Navigation through such applications is performed with the use of virtual on-screen keyboards.

FPS Components has developed WPF Virtual Keyboard, which can be integrated with any WPF application. It works just like the standard Windows WPF keyboard, where the users input text pressing corresponding keys on a touch screen. WPF keyboard software can be used in a variety of applications for touch screen interfaces to improve user experience.

virtual keyboard

WPF touch screen keyboard package includes a powerful layout management tool, the FPS Keyboard Creator, developing custom layouts and supporting different languages. Languages are included in the package and can be loaded by the FPS Keyboard Creator or directly within the WPF on-screen keyboard control.

WPF virtual keyboard software

The product installer includes samples demonstrating all features of the product, including the use of custom themes.

For a preview of the FPS Virtual Keyboard for WPF applications, the standalone WEB Touch app is available for download here.

Product Screenshots (Click to enlarge)

Licensing & Pricing

SKU Limitation Source Code Price
Trial Expires after 21 days No Free!
Developer License None! No $199 USD
Site License None! No $899 USD
Enterprise License None! No $1499 USD
Blueprint License None! Yes! $2899 USD

Key Features

Predefined Languages
From FPS Virtual Keyboard v 1.3 any language that is added to user Windows settings can be automatically generated on runtime. Also users can add their own custom language layouts by adding a new XML file into Layouts folder. Now it can be done by FPS Keyboard Creator tool that is supplied with any license of this product.
    List of Languages supported :
  • AR Arabic 101 (Bahrain)
  • AR Arabic 101 (Egypt)
  • AR Arabic 101 (Iraq)
  • AR Arabic 101 (Jordan)
  • AR Arabic 101 (Kuwait)
  • AR Arabic 101 (Lebanon)
  • AR Arabic 101 (Oman)
  • AR Arabic 101 (Qatar)
  • AR Arabic 101 (Saudi Arabia)
  • AR Arabic 101 (Syria)
  • AR Arabic 101 (UAE)
  • AR Arabic 101 (Yemen)
  • AR Arabic 102 AZERTY (Algeria)
  • AR Arabic 102 AZERTY (Libya)
  • AR Arabic 102 AZERTY (Marocco)
  • AR Arabic 102 AZERTY (Tunisia)
  • BE Belorussian (Belorus)
  • BG Bolgarian (Bolgaria)
  • BN Bengal (India)
  • BS Bosnian Cyrilik (Bosnia and Herzegovina)
  • BS Bosnian Latin (Bosnia and Herzegovina)
  • CA Catalan
  • CS Czech (Czech Republic)
  • CS Czech (Czech Republic) Czeck (QWERTY)
  • CS Czech (Czech Republic) Czeck programmers
  • CY British (Bratain)
  • CY Welsh (Bratain)
  • DA Danish (Denmark)
  • DE German (Austria)
  • DE German (Germany) German
  • DE German (Germany) German (IBM)
  • DE German (Liechtensein)
  • DE German (Luxembourg)
  • EL Greek 220 (Greece)
  • EL Greek 220 Latin (Greece)
  • EL Greek 319 (Greece)
  • EL Greek 319 Latin (Greece)
  • EL Greek Latin (Greece)
  • EL Greek (Greece)
  • EL Greek Politonik (Greece)
  • EN English International (USA)
  • EN English (Australia)
  • EN English (Belize)
  • EN English (Canada)
  • EN English (Caribbean)
  • EN English (Ireland)
  • EN English (Ireland) Gaelic
  • EN English (Jamaica)
  • EN English (New Zealand)
  • EN English (Philippines)
  • EN English (South Africa)
  • EN English (South Africa)
  • EN English (USA)
  • EN English (Zimbabwe)
  • EN English British (UK)
  • EN English Drovak (Belize)
  • EN English Drovak (USA)
  • EN English Drovak Left Hand (USA)
  • EN English Drovak Right Hand (USA)
  • EN English Irish (Ireland)
  • ES Spanish (Argentina)
  • ES Spanish (Bolivia)
  • ES Spanish (Chile)
  • ES Spanish (Colombia)
  • ES Spanish (Costa Rica)
  • ES Spanish (Dominican Republic)
  • ES Spanish (Ecuador)
  • ES Spanish (El Salvador)
  • ES Spanish (Guatemala)
  • ES Spanish (Honduras)
  • ES Spanish (International)
  • ES Spanish (Mexico)
  • ES Spanish (Nicaragua)
  • ES Spanish (Panama)
  • ES Spanish (Paraguay)
  • ES Spanish (Peru)
  • ES Spanish (Puerto Rico)
  • ES Spanish (Spaine) Traditional
  • ES Spanish (Uruguay)
  • ES Spanish (Venezuela)
  • ET Estonian (Estonia)
  • EU Euskaldunak (Euskadi)
  • Fi Finnish (Finland) Finnish
  • Fi Finnish (Finland) Finnish with Sami
  • FR French (Belgium) Belgian French
  • FR French (Canada) Canadian French
  • FR French (Canada) Canadian French (Legasy))
  • FR French (Canada) Canadian Multilingual Standard
  • FR French (France)
  • FR French (Switzerland) Swiss French
  • FR French (Switzerland) Swiss German
  • FY Frisian (Netherlands)
  • HE Hebrew (Israel)
  • HI Hindi (India)
  • HR Croatian (Bosnia and Herzegovina)
  • HR Croatian (Croatia)
  • HU Hungarian (Hungary) Hungarian
  • HU Hungarian (Hungary) Hungarian 101-key
  • HY Armenian Eastern (Armenia)
  • HY Armenian Western (Armenia)
  • IN Indonesian (Indonesia)
  • IS Icelandic (Iceland)
  • IT Italian (Italy)
  • IT Italian (Italy) 142
  • IT Italian (Swiss)
  • IU Inuktitut (Canada) Latin
  • KA Georgian (Georgia)
  • KA Greenlandic (Greenland)
  • LB Luxembourgian (Luxembourg)
  • LT Lithuanian (Lithuania)
  • LT Lithuanian IBM (Lithuania)
  • LV Latvian QWERTY (Latvia)
  • LV Latvian (Latvia)
  • MK Macedonian FYROM (Macedonia)
  • ML Maltese 47 (Malta)
  • ML Maltese 48 (Malta)
  • MY Malayalam (India)
  • NE Nepali (Nepal)
  • NL Dutch (Belgian) Comma
  • NL Dutch (Netherlands)
  • NO Norwegian Soomy (Norway)
  • NO Norwegian (Norway)
  • NO Norwegian NewNorsk (Norway)
  • PA Pashto (Afhghanistan)
  • PL Polish (Poland)
  • PL Polish Programmers (Poland)
  • PT Portuguese (Brasil)
  • PT Portuguese (Portugal)
  • PT Portuguese ABNT(Brasil)
  • RO Romanian (Romania)
  • RU Russian (Russia)
  • SK Slovak (Slovakia)
  • SK Slovak QWERTY (Slovakia)
  • SL Slovenian (Slovenia)
  • SM Sami lul (Sweden)
  • SQ Albanian (Albania)
  • SR Serbian Cerilik (Serbia)
  • SR Serbian Latin (Serbia)
  • SV Sweden (Sweden)
  • TH Thai Kedmanee
  • TH Thai Kedmanee without SHIFTLOCK
  • TH Thai Patashot
  • TH Thai Patashot without SHIFTLOCK
  • TR Turkish F (Turkey)
  • TR Turkish Q (Turkey)
  • UA Ukrainian (Ukraine)
  • VI Vietnamese (Vietnam)
Themes Support
8 Predefined themes with custom styled window are supported:
  • Office Blue
  • Silver
  • Black
  • Orange
  • Green
  • Vista (non transparent)
  • MAC Skin
  • Media Player 10
New themes will be available in future versions of the product.
Custom Themes
Users can create custom themes by defining styles of buttons and other parts. Please investigate working sample of how to make it work.
Visual Studio 2008 and Expression Blend
Fully supported by Microsoft Visual Studio 2008 and Expression Blend
Visual Studio 2010 Support
Support of latest Visual Studio is added with samples and solutions included within installation package.
Support and Updates
The product will be supported for a period of 12 months following the purchase. Updates such as bug fixes, major and minor updates will be released periodically.
No Royalties
Royalty free. Can be freely used in all applications.

Additional Services

Custom Development
We can provide consulting services regarding these WPF components to develop custom applications using them. Please fill this Form in order to allow us to evaluate your request.
Component Development
If you have any specific requirements to add to these components, please fill this Form in order to allow us to evaluate your request.

Release Notes

  • 4.3.6
    Fixed problem in standalone mode when keyboard get focus on itself after starting. Added ability ​to change language in foreground window in other process. Fixed problem with ​top most window​​: standalone keyboard hides behind other windows​.
  • 4.3.4
    Fixed: Visual issue with disappearing hover state of keys. CapsLock, NumLock, ScrollLock keys states, Added ability to change CurrentCulture property when "language" button has been pressed. Added ability to handle language changing from outside of virtual keyboard component.
  • 4.3.1
    Updated functionality of key events, removing extra events of system keys.
  • 4.3.0
    • Updated functionality of events of the keys
    • Removed the extra calls of system keys
    • Fixed work of custom styles of the VirtualKeyboard
    • Fixed loading of themes of the VirtualKeyboard
  • 4.2.0
    Fixed issue with trial period notification
  • 4.1.0
    • Installer adopted for Windows 8 and Windows 8.1
    • Performance and rendering improvements
    • Fixed minor layout bugs and tweaks
    • Changed key sending functionality
    • Removed: Control ,Shift,Alt Alt Gr lock properties from key and made them as obsolete
    • Changed key creation and key sending strategy (now for Send @ you do not need set Shift Key Lock for "2" key, you just need set In Content Property "@" ), also we support old approach
    • Keyboard Creator: bug fixing (Crash when do "Run Test" ), made changes for new key creation strategy.
  • 4.0.0
    • DefaultLayout property - is now marked as obsolete, new property TemplateLayout
    • Fixed minor layout bugs and tweaks
    • Added support of Visual Studio 2012
    • Added support of custom images to supply in WPF and Windows Forms version. That works via Keyboard editor as well
    • .NET 4.5 version is now available for WPF Keyboard
  • 3.2.3
    Buttons Flickering issue has been fixed
  • 3.2.2
    • Added FPS.LicenseValidator.ShowTrialWindow property to show or not Trial Key Window when keyboard in trial period. True is default value. if trial period is expired this parameter will be ignored.
    • Minor issues fixed
  • 3.2.1
    Added new Property "AutoFill" this option generate keyboard depends on language layout (qwerty ,azerty etc...) if tis property is false your keyboard cannot distinguish (qwerty ,azerty layouts).
  • 3.2.0
    • Improved keyboard speed/performance
    • Fixed bug with umanaged memory usage
    • Simplified template customization
    • Added "CurrenCase" readonly property directly in RegularKey. Now you do not need use any converters or additional code to get character depends on sepcial key like shift altGR etc...
  • 3.1.0
    • Fixed layouts for differents languages like French or German qwerty, qwertz, azerty variations.
    • DefaultLayoutProperty - Use this property for custom layout. In VK Creator define common view of keyboard. VK carry on RegularKey by itself (qwerty, or azerty) will be auto generated.
    • Mode - Added This dependency property has 3 state "Default" ,"Extended" and "Custom" mode, first state generate default layout , second extendend layout last mode use for custom layouts e.g Set "LayoutFolder" property to define directory path where layouts will be located or set "LayoutTemplate" property to define common view for keyboard layout if you use "Custom" mode VK use "LayoutTemplate" first if it is null than load keyboard from directory "LayoutFolder" property
    • Removed Serializer class. Now Keyboard layout class carry on loading layout from stream "Create" method
  • 3.0.3
    Fixed French layout issue with Caps Lock State
  • 3.0.2
    • Improved Keyboard loading speed
    • French Layout issue fix
    • fixes on sample : GetCharacterDependsOnSpecialKeysConverter issue
    • Visual Studio 2010 fix, virtual keyboard reference now listed in reference list(if use full .NET framework not Client Profile, otherwise need to reference by navigating dll in windows explorer)
  • 3.0.1
    Added CurrentCulture Property that forces change of keyboard language
  • 3.0.0

    Virtual Keyboard component has been refactored to prepare to publish source code so here is a list of changes :

    • changed class name from WindowsAPI to NativeMethods
    • changed Event args class name from FPSKeyEventArgs to FpsKeyEventArgs
    • Some minor keyboard and languages fixes
  • 2.2.2
    • Fixes with language change Buttons and Virtual Keyboard Creator were implemented - now all languages are recognized (previously in certain cases unique IDs were recognized rather than language name)
    • .NET 4.0 version is now returned for WPF, so .NET 4.0 now is true targeted version available for download
  • 2.2.1
    • Special Symbols fixes for Belgium language layout implemented
    • Special Symbols fixes for French language layout implemented
    • Special Symbols fixes for German language layout implemented
  • 2.2.0
    • Minor fixes from previous version
    • Fix implemented to resolve issues caused by some Windows API command calls, AltGr issue found and fixed for languages and layouts that use it, such as French layout, thanks for reporting the issue.
    • Updated detailed technical and functional description was also added. HowToUse.pdf file provides the answers to frequently asked Questions.
  • 2.1.0
    • All default layouts now are integrated into the Virtual Keyboard component. It now includes most of the world’s languages and dialects being added into Windows operating systems.
    • CanUnlockSpecialKey - new feature and Virtual keyboard property, should be used in order to have keyboard maintain a special control state pressed after some combination, like Alt, Shift, Ctrl
    • Added more samples regarding Dynamic calls : SendKey method that can be used to emulate the key press event
    • Added sample with more textboxes and fade in /out of virtual keyboard, as requested by customers
  • 2.0.0
    • Product name has been changed from FPS Input Controls to FPS Virtual Keyboard
    • Revised XML file format that is not compatible with previous versions
    • Keyboard Creator updates: ZoomIn, ZoomOut, Top toolbar for drag and drop operations, more features for keyboard to setup content, a number of repetitions of a key, copy, paste, delete buttons, run a test window to see runtime, snap lines and much more.
    • DefaultLayout property to give all languages one default layout will be used if no custom setting is defined
    • Enhanced virtual keyboard customization via Content, Repetition, and Lock(Alt, Control, Shift) options
    • Support of X64, now you can build your projects with ANY CPU or specify particular architecture. Virtual keyboard DLL is platform independent
  • 1.3.1
    • Layouts folder is no longer needed for default layouts, Any language located at user Windows installation will be recognized and TouchScreenKeyboard will respond to language change at runtime
    • FPS Keyboard Creator Tool is much improved; as it generates any language with default(QUERTY) layout this operation can be done with two mouse clicks
    • Additional properties to control what to show on the keyboard button are: ShowUpperCase, ShowLowerCase and VirtualCode which is now used instead of KeyCode and ShiftKeycode
    • Fixed issues that occurred when using the old way to use keycodes
    • Due a lot of requests we targeted all our libraries and samples to X86 platforms, and are working to release CPU independent version. Since X64 isn’t currently working, development in X64 platform is possible while using X86 targeting of your project
    • Important Feature: if a user keeps a button pressed, it will repeat key pressing like any regular keyboard
    • Added Visual Basic. NET samples
    • Added Visual Studio 2010 solution and samples
    • Product installation includes documentation in a way "How to" use TouchScreen Keyboard component. This is done with common PDF files format and includes many screenshots.
  • 1.2.0
    • Additional tool has been added into the product package. Now your own layouts and languages can be added with a simple drag-drop operation and can be saved in XML files
    • Custom themes support added an example of how to create users’ own themes
    • The ability to switch current language of windows system by new keyboard function implemented
    • Fixed errors that occurred during the application development on Windows Vista and Windows 7
  • 1.1.01
    • The ability to change visibility of common system buttons such as F1..F2, Escape, TAB, CTRL, MENU, Win, Alt
    • IsStandAloned property for keyboard control makes it possible to be used in one window as a usercontrol or as a standalone application that is similar to Windows Keyboard or real hardware keyboard
    • MAC Os themes for keyboard and NUMPAD controls added
FPS Virtual Keyboard for WPF
Pricing starts from $199 USD
Do you have a question or feedback?
We want to hear it! learn more
Keep Informed
FPS Components can email you when new products and updates are made available. learn more
Knowledge Base
Want to know more? Check our Knowledge Base.
Secure payments
All transactions on the website are done via 2Checkout with high safety and operational security.