使用屏幕键盘的WPF应用程序的正确解决方案

使用屏幕键盘的WPF应用程序的正确解决方案,wpf,keyboard,Wpf,Keyboard,一段时间以来,我一直在为运行在平板电脑上的WPF应用程序开发一个好的OSK解决方案。但使用OSK.exe和tabtip.exe很困难,因为有几个bug、奇怪的行为,而且这个普通问题并没有标准化的解决方案 我(可能)需要的是一个自定义textbox控件,它继承自System.Windows.Controls.textbox,并重写某些方法 此文本框的简单要求应为: 1.当用户单击文本字段时,tabtip.exe(或类似)键盘应在屏幕底部弹出(默认)。 2.如果键盘在文本框顶部弹出,contentf

一段时间以来,我一直在为运行在平板电脑上的WPF应用程序开发一个好的OSK解决方案。但使用OSK.exe和tabtip.exe很困难,因为有几个bug、奇怪的行为,而且这个普通问题并没有标准化的解决方案

我(可能)需要的是一个自定义textbox控件,它继承自System.Windows.Controls.textbox,并重写某些方法

此文本框的简单要求应为: 1.当用户单击文本字段时,tabtip.exe(或类似)键盘应在屏幕底部弹出(默认)。 2.如果键盘在文本框顶部弹出,contentframe应该滚动,以便文本框可见。 3.当文本框失去焦点时,键盘应自动关闭,除非用户单击另一个文本框

这似乎是相当标准的行为,对吗?嗯,我已经寻找了很长时间的解决方案(没有标准的微软方式,这有点奇怪),正如我所说的,我已经尝试了自己的方式,但没有运气。例如,有时当我试图终止进程时,它失败了。当我点击键盘右上角的close按钮时,比如5-6-7次,它就会关闭。从PC到平板电脑的行为并不一致。ScrollViewer.ScrollToVerticalOffset(x);有时你会在平板电脑上工作,等等


那么,你们中有谁知道这个常见问题的好解决方案吗?

如果您将WPF移植到Windows应用商店应用程序(Metro),您可以免费获得所有这些。你的目标是什么操作系统?@alski WinRT XAML与WPF XAML相比很可笑。我也有同样的问题。隐藏聚焦区域的键盘非常烦人。我们正在考虑从应用程序中打开tabtip并自己编写行为。您(或其他人)找到更好的解决方案了吗?将tabtip作为外部进程调用是毫无痛苦的,它甚至可以读取您的InputScope属性并相应地呈现自己。