在WPF中替换Windows 7+屏幕键盘

时间:2015-04-27 19:50:13

标签: c# wpf xaml on-screen-keyboard

我维护/开发通常用于触摸屏的C& C应用程序。大多数文本框都需要数字输入,因此大多数普通键盘都没有意义。我的老板要我为这些盒子建一个没有键盘的数字键盘。 (我们也有其他的字母数字框。)用户可以选择一个复选框来指示是否需要屏幕键盘。

我从How to disable the little touch-keyboard on Windows edit controls了解到如何确保标准Windows键盘不会出现在我的应用程序中。 注册表很难看,但至少它让我和大家玩得很开心。

由于应用程序已经构建,我决定使用资源字典来修改我的文本框;见Is it possible to set code behind a resource dictionary in WPF for event handling?。根据WPF的设计,这显然也很难看。

现在我需要告诉我的代码在键盘的窗口(或其他控件)的位置。这听起来像是一个XAML属性 - 一个依赖属性。不幸的是,ResourceDictionary并未扩展DependencyObject,所以看起来这种技术似乎不可行。

WPF: Specific input textboxes (for phone numbers and such),如果点按会召唤一个只允许使用字符的键盘,this之类的内容就会有效。实际上,那将是绝对完美。如果只有this是WPF的一部分,因此与键盘集成在一起。

但也许我的方法的一部分是错的?如何选择“数字框”时出现的数字键盘?我真的不想在涉及文本框的每个XAML页面上复制(而不是引用)资源字典。

P.S。格式化问题怎么样?

1 个答案:

答案 0 :(得分:1)

我认为你正在倒退。我还必须编写自己的键盘控件(这里有各种相关的改进),我这样做的方法是编写一个新的文本框控件,让我能够描述我想要的那种键盘 - 数值或标准(再次,以及各种其他属性)。

现在控件本身知道它被触摸的位置(是的,我知道),它可以包含绘制自身和弹出键盘页面所需的资源。除了在您的网页上实际使用它之外,您不必担心任何事情。