【发布时间】:2016-02-13 16:17:20
【问题描述】:
我需要在我的 Wpf 应用程序中使用像 Native Windows OSK 这样的 OnScreenKeyboard 组件。我可以通过 Process.Start("osk.exe") 调用 UI,但 UI 出现在主 ui 窗口的顶部。我想在我的应用程序底部启动 OSK 应用程序。这可能有任何论据吗? -例如。 process.StartInfo.WindowPosition=xxx- 我希望在创建自己的组件之前使用它。
【问题讨论】:
-
osk.exe 的主窗口使用WS_EX_TOPMOST 扩展窗口样式,因此它始终位于所有其他非最顶层窗口的前面。这是意料之中的,因为用户必须与 OSK 交互。用另一个窗口遮住它几乎违背了这个目的。如果您需要(暂时)隐藏 OSK,请在其顶层窗口中调用 ShowWindow。一种更具侵入性的方法是删除
WS_EX_TOPMOST样式 (SetWindowLongPtr)。
标签: wpf winapi win32gui on-screen-keyboard