0

我在 WPF 中有一个页面,其中有一个文本框。此文本框设置为专注于负载。

后台运行的应用程序获取生物识别扫描结果的字符串值并将其放置在该文本框中。这是一个 3rd 方应用程序,我们被告知它会在具有特定名称的应用程序中查找具有特定名称的文本框,如果该文本框被关注,它将写入该字符串。

这工作得很好,但下面是我遇到的问题。

我们还有另一款软件,它是定制的屏幕键盘。文本框也可以写入,因此用户可以单击按钮调出此键盘,然后开始输入。但是,当这个键盘出现时,它似乎失去了对我的应用程序的关注并且它不会再次出现。对于我们的应用程序运行的生命周期,生物识别技术不起作用,因为它没有将我的应用程序视为当前关注的应用程序。

我如何强制我的应用程序重新获得焦点,但只有在我想要它的时候。我不希望它始终处于焦点和顶部,否则自定义键盘将永远不会显示。

我不高兴地看着 Application.Activated 事件,甚至尝试了以下

public static extern bool SetForegroundWindow(IntPtr hWnd);

遇到但卡住了,有人有什么建议吗?

4

1 回答 1

0

您是否尝试过 Activate() 和 Focus() 方法?这个线程有一堆关于主题的答案在WPF中将窗口放在前面

这个特别适合我https://stackoverflow.com/a/7559766/305020

于 2013-09-24T15:30:44.793 回答