Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio工具箱中。
Telerik UI for WPF套件在R2 2022版本中发布了一个新的组件——RadVirtualKeyboard,旨在允许用户在没有物理设备的情况下输入字符并通过鼠标或触摸设备与之交互。

虚拟键盘的用途
虚拟键盘具有许多优点,最主要的是用户可以直接用外语键盘输入自己的语言,这样的键盘也可以增加用户的安全性。

入门指南
设置 WPF 项目后,为自己配备 RadVirtualKeyboard 是一件容易的事。 您需要的是 XAML 中的 RadVirtualKeyboard 标记以及对 Telerik.Controls.dll、Telerik.Windows.Data.dll 和 Telerik.Controls.Navigation.dll 的引用。
<telerik:RadVirtualKeyboard />

主要功能
布局
该控件具有三个内置布局,可以通过 DefaultKeyboardLayout 属性进行控制:
1. Extended – 标准键盘,如标准物理键盘,带有数字键盘和 F1-F12 键等。

2. Compact – 没有数字键盘和其他按键的键盘。

3. Numpad – 仅显示数字键盘键。

需要自定义布局? 不用担心。 您可以使用特殊的 XML 文件创建一个,然后使用虚拟键盘的 LoadLayout 方法加载它。
支持语言文化
RadVirtualKeayboard 中字母按钮的默认语言由所选操作系统的输入语言决定,更改该语言运行时不会影响字母按钮中的文本。SynchronizeCultureWithSystem 属性在这里起到了帮助作用,只需将其设置为 True 并启用当前输入语言跟踪 - 当语言在运行时更改时,文本将更新。
也可以通过设置控件的 Culture 属性手动更改字母的当前语言。
virtualKeyboard.Culture = new System.Globalization.CultureInfo("bg-BG");
使用声音
如果您不喜欢键盘有声音,只需将IsKeyPressSoundEnabled 属性设置为 false,或者通过 KeySoundPlayer 进行更改。
StreamResourceInfo info = Application.GetResourceStream(new Uri(@"/WpfApplication;component/myClickSoundFile.wav", UriKind.Relative));
virtualKeyboard.KeySoundPlayer = new DefaultKeySoundPlayer(info.Stream);
键盘窗口
Rad VirtualKeyboard 的另一个很酷的地方是它的特殊窗口,根据键盘设计风格:
var keyboardWindow = new RadVirtualKeyboardWindow(new RadVirtualKeyboard() { DefaultKeyboardLayout = DefaultKeyboardLayout.Compact});
keyboardWindow.Show();
