一段时间以来,我一直在为我的 WPF 应用程序开发一个好的 OSK 解决方案,这些应用程序在平板电脑上运行。但是使用 OSK.exe 和 tabtip.exe 很困难,因为有几个错误、奇怪的行为以及对这个普通问题没有标准化的解决方案。
我(可能)需要的是一个自定义文本框控件,它继承自 System.Windows.Controls.TextBox,并覆盖了一些方法。
这个文本框的简单要求应该是: 1. 当用户在文本字段中单击时,tabtip.exe(或类似的)键盘应该弹出在屏幕底部(默认)。2. 如果键盘在文本框顶部弹出,则内容框应滚动以使文本框可见。3. 当文本框失去焦点时,键盘应该自动关闭,除非用户点击另一个文本框。
这似乎是非常标准的行为,对吧?好吧,我已经寻找解决方案很长时间了(没有标准的微软方式,这有点奇怪),正如我所说,我尝试过自己制作,但没有运气。例如,有时当我尝试终止进程时,它会失败。当我点击键盘右上角的关闭按钮时,比如 5-6-7 次,它就会关闭。从 PC 到平板电脑的行为并不一致。ScrollViewer.ScrollToVerticalOffset(x); 有时不能在平板电脑上工作,等等。
那么你们中的任何人都知道解决这个常见问题的好方法吗?