Search
What's New in this Release

The list below describes recent changes and additions to MindFusion Virtual Keyboard:

New in version 5.0.2

.NET 6 support

The Virtual Keyboard distribution now includes assemblies for .NET 6. Locally installed assemblies don't show automatically in toolbox at this time, you can either add them manually or through Nuget package manager.

Miscellaneous

  • CurrentCase property of RegularKey returns key's label reflecting current state of modifier keys.
  • The control now tracks state of Caps-lock and Shift keys of physical keyboard (if one is attached to the system).
  • Enable PasswordMode to stop highlighting pressed or hovered keys.
  • ChangeLanguage overloaded methods let you set current language either by Windows SDK layout identifier or by CultureInfo.
  • The CurrentLayout property returns the KeyboardLayout instance currently in use.
  • Fixed unequal layout margins; now the keyboard should center correctly inside its layout area.

New in version 5.0.1

.NET 5 support

The Virtual Keyboard distribution now includes assemblies for .NET 5. Locally installed assemblies don't show automatically in toolbox at this time, you can either add them manually or through Nuget package manager.

New in version 5

General IME mode

The component supports general IME mode that maps raw input sequence to dictionary entries. The keyboard collects clicked characters in a staging area and shows the matching entries as suggestions. Users can either click a suggestion button to send its content as input, or click the space key to send the first suggestion.

To enable IME mode, call the LoadImeTable method, specifying the language for which to load IME table and the dictionary file path. The table file format contains one line per entry, with three tab delimited values: raw input, translation, frequency. For example, a hypothetical IME table that translates chemical formulas to compound's common name could look like this:

C#  Copy Code
c3h8o  Propan-2-ol    2
c3h8o  Propanol       4
h2o    Water          1
c3h8o  Methoxyethane  1
c3h8o  Propan-1-ol    3
c2h6   Ethane         1
c3h7br 1-bromopropane 3
c3h7br 2-bromopropane 2
....
vk.LoadImeTable(
 new CultureInfo("en-US"), "chemical.txt");

and suggestions for the partial input "c3h" will look like this:

Chinese

The component can parse IME tables from the Linux Ibus project to implement various Chinese transliteration systems. For example you can load following tables for respectively mainland China's simplified Chinese, Taiwan's traditional Chinese and Hong-Kong's Cangjie input methods:

Pinyin
https://android.googlesource.com/platform/packages/inputmethods/PinyinIME/+/refs/heads/master/jni/data/rawdict_utf16_65105_freq.txt

Zhuyin
https://github.com/definite/ibus-table-chinese/blob/master/tables/zhuyin.txt

Cangjie
https://github.com/definite/ibus-table-chinese/blob/master/tables/cangjie/cangjie3.txt

The following image shows the Zhuyin input method:

Japanese

If current language is Japanese, the keyboard renders Hiragana characters. In addition, LoadImeTable can parse tables from Google's mozc project to convert Hiragana to Kanji. To enable this mode, specify path to a directory containing the 10 dictionary files from following link:
https://github.com/google/mozc/tree/master/src/data/dictionary_oss

This image demonstrates Hiragana to Kanji conversion:

Korean

The keyboard renders Hangul letters when current language is Korean, and automatically enables IME mode that converts letter sequences to Hangul syllabic blocks according to Unicode rules:

Dictionary licensing

Note that the open source Chinese and Japanese dictionaries linked above have licensing terms of their own - some are in the public domain, some include attribution / no warranty clauses, some are LGPL. For licensing terms, check comments in respective dictionary files or license sections of their parent project. If there is enough interest, we will provide built-in dictionaries on MindFusion's standard licensing terms for next releases.