FPS On-Screen Virtual Keyboard — Version 4.1.0

A touch screen performs two functions – it is a computer display screen and an input device simultaneously. Touch screens respond to pressure, so a user interacts with a device by means of touching keys on a touch screen. Touch screens have become very common over the past few years, as the prices on them have decreased steadily. Touch screens have been widely used in preference to keyboard and mouse systems, since in some environments the latter often do not supply an efficient interaction between a user and the content on the screen.

A dual touchscreen is computer display setup consisting of two screens, and either or both of them can be touch-capable. As a rule, one screen of the dual touchscreen displays elements and functions, which are in use most frequently, and the other displays those user interface elements that are accessed the least.

OnScreen Virtual Keyboard supports several features designed to make the process of typing on a touch screen extremely comfortable. Our touch screen keyboard for PC is a Windows touch screen keyboard with a number of predefined settings and two keyboard layouts – alphabetic and alpha-numeric. These changes will make the experience of using Hot Virtual Keyboard on touch screen devices even more convenient.

The alphabetic layout enables you to use all languages installed in your system. When the input language of your system is changed, the language of the touch screen software for PC is also changed.

Using the alpha-numeric keyboard type, you can type numbers and 35 other characters, including arithmetic signs, punctuation marks, special symbols etc.

An Overview of Version 4.1.0

FPS Virtual Keyboard 4.1.0 introduces some performance and rendering improvements. The functions of key sending have been changed, Control, Shift, Alt Alt Gr lock properties have been removed. The key creation and the key sending strategy have been changed in the latest version. Now for Send @ you don’t need set Shift Key Lock for “2” key, you only need set In Content Property “@” (the previous approach is still supported). Keyboard Creator bugs (“Run Test” crash) have been fixed and some changes have been made in the key creation strategy. All minor layout bugs and tweaks have been fixed.

More on this post - FPS On-Screen Virtual Keyboard — Version 4.1.0

12/31/2013 8:59:39 PM

How to use FPS Virtual Keyboard for WPF


This document outlines “How to” tutorial and can give FPS Virtual Keyboard users a chance to get familiar with component within approximately 10 minutes.

To get started with it you can have Visual Studio 2012 and FPS Virtual Keyboard for WPF installed.

Create Default Keyboard

Here is a basic usage example, considering using Visual Studio 2012.

Default Keyboard

Create WPF Application; name it TouchKeyboardTest or whatever name you like. FPS Virtual Keyboard for WPF is built with .NET 4.5 so we choose .NET Framework 4.5

Now Add References for FPS.VirtualKeyboard.dll and FPS.Shared.dll. FPS.Shared.dll usage will be explained in next Chapter.

Apply xmlns namespace inside Window.xaml definition to get the component recognized:

xmlns:fps="clr­ namespace:FPS.VirtualKeyboard;assembly=FPS.VirtualKeyboard "

Now appropriate control can be found, just type inside Grid:


As a result of those 3 simple actions you will see VirtualKeyboard component shown on the Window in design time. Now press F5 and voila you have keyboard working inside the window.

keyboard windows

Using Predefined Theme

FPS.Shared Library contains a number of predefined themes for most of FPS Components built for WPF. If you put in code­behind the following line, Blue theme will be applied to VirtualKeyboard component automatically:



Press F5 and you will see expected window.

virtual keyboard example WPF

Any installed language supported.

Just imagine that you need to use your native language or you have an application to support some specific keyboard layout (German, Russian, and Chinese, whatever).

FPS Virtual Keyboard for WPF supports default generated layout, that works if no custom layout is found in Layouts folder where FPS.VirtualKeyboard.dll file is located. Switching current system language at runtime gives VirtualKeyboard component command to react. It can be done also by using special button:

virtual keyboard for WPF - German language default layout

German language default layout

Russian language default layout keyboard WPF

Russian language default layout

Note: Only QUERTY layouts are generated, as such languages as French uses different layout (AZERTY) it should be modified by using FPS.KeyboardCreator tool.


Using of Keyboard Creator

FPS Virtual Keyboard is supplied with a handy tool that can be used to create custom layout. You can run it from Start Menu ­ > All Programs ­ > FPS Components ­ > FPS.Virtual Keyboard for WPF ­ > FPS.VirtualKeyboard Creator

It is very simple to use and you can get auto­generated layout within 2 clicks, see screenshot below:

Using of Keyboard Creator

So just choose language and press Generate Default layout (or Extended). The result will be default QUERTY layout for selected language.

However many customers need to edit layout, i.e. remove not needed keys, move and resize buttons. By selecting button you can type character and if Upper or Lower case will be visible, as it needs sometimes in touchscreen applications.

Current functions are: Zoom, Copy, Paste, Delete, Multi selection, Drag drop of button from top toolbar, and right side functions for setting up every button’s properties.

You can also execute Layout ­ > Run Test command in main menu, which runs currently designed layout in test window right how it will be at runtime.

Generally with FPS.Keyboard Creator user can setup character or content (if user wants to override text), repetition used to give number of times button will react, for example common is “www.” Alt, Shift, Control lock is used to show value as default, for example ALT + “2” will return “@” to target text field.

Custom Theme

This document will not cover all aspects of writing custom styles in WPF. Along with FPS.VirtualKeyboard for WPF a sample that covers it is supplied.

Please check: FPS.VirtualKeyboard.Samples.CS.VS2012.sln that can be found in Windows Start Menu. Inside the sample there is CustomVirtualKeyboardStyle.xaml contained, which includes custom style definition for VirtualKeyboard. After the style is defined, you just need to apply it to keyboard component by following lines:

ResourceDictionary resources = new ResourceDictionary();
resources.Source = new Uri( "/FPS.VirtualKeyboard.Samples.Styles;component/CustomVirtualKeyboardStyle.xaml ", UriKind.Relative); 
this.Resources.MergedDictionaries.Add(resources); virtualKeyboard.ForceUpdateLayout(); 

ResourceDictionary resources = new ResourceDictionary();
resources.Source = new Uri( "/FPS.VirtualKeyboard.Samples.Styles;component/CustomVirtualKeyboardStyle.xaml ", UriKind.Relative); 
this.Resources.MergedDictionaries.Add(resources); virtualKeyboard.ForceUpdateLayout(); 

ResourceDictionary resources = new ResourceDictionary();resources.Source = new Uri( "/FPS.VirtualKeyboard.Samples.Styles;component/CustomVirtualKeyboardStyle.xaml ", UriKind.Relative); this.Resources.MergedDictionaries.Add(resources); virtualKeyboard.ForceUpdateLayout(); 

Below is actually custom style and layout for VirtualKeyboard component. This is from our samples, so you can find style and layout source in a place where component is installed.

custom theme virtual keyboard

64 bits support(Updated)

FPS Virtual Keyboard now works under x64 and x86, so we don’t target our build to any specific platform(CPU).

IsStandalone option

Such option is quite useful to have keyboard component to be used inside application as UserControl (IsStandalone = false) or behave exactly as Windows On­screen Keyboard tool, that works with any window that is currently in focus. Follow the example that is supplied with FPS Virtual Keyboard for WPF installation to get it working if you need this feature.

CanUnLockSpecialKey property should be used if you would like to not store pressed state of some special keys. This feature useful especially for Shift, Alt, Ctrl. Setting this property to true will unlock special key else special key will be pressed till you press it again

Template Layout property

It happens that users need to have same layout for different options so not need to edit all layouts per every language, even if key can work different for every language we give such possibility. In our sample code you can find how template layout is being used. Just a line of code in general:

virtualKeyboard.TemplateLayout= FPS.VirtualKeyboard.KeyboardLayout.Create(this.GetType().Assembly.GetManifestR



Licensing of FPS Components

A Knowledge Base topic covers licensing of any FPS Components for WPF, but the example code covers FPS Virtual Keyboard for WPF: http://fpscomponents.com/KBPost.aspx?id=4

More on this post - How to use FPS Virtual Keyboard for WPF

9/21/2013 12:15:22 PM

Virtual Keyboards Update, Pricing updates

FPS Components presents an updated version of Virtual Keyboard 4.0.0 for WPF and Windows Forms.
  • Important update with supporting Images in the buttons, the easiest way is to use Keyboard Layout Editor to update those things. This is now supported at Windows Forms version as well
  • .NET 4.5 version is now available for WPF Keyboard
  • Added support of Visual Studio 2012
  • Visual Studio 2010 design time support fix
  • DefaultLayout property - is now marked as obsolete, new property TemplateLayout
There are following website and company licensing enhancements :
  • License Renewal options are now available and fully functional, if user still under yearly subscription then user is eligible for renewal code that is 60% of the regular price
  • Lifetime license, is new option that is available at purchase, with price like 2 to 4 times more expensive rather regular yearly subscription license. As a result users receive ability to have all of the product updates forever!

What do you receive: Buying any license of FPS Virtual Keyboard for WPF or Windows Forms, you can use it with no royalties in any of your applications. All major and minor updates and fixes for one year are guaranteed. We are always glad to hear what people say about our products, and we would like to provide you with desired updates in a short period of time.

FPS Components is a .NET component vendor standing on customer development model. Please check our products at fpscomponents.com

More on this post - Virtual Keyboards Update, Pricing updates

7/12/2013 6:41:08 PM

Virtual Keyboard Language List

Good Day all FPS Components' customers and visitors. 

Due to many requests we decided to post here list of languages that are supported by our Virtual Keyboard Component, be it WPF version or Windows Forms version.

    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)
More on this post - Virtual Keyboard Language List

5/1/2012 12:40:33 PM