我写了一个简单的MSN风格的程序,将使用 WCF 发送和检索消息.主表单包含一个文本框,用于输入要发送的消息。在后台,应用程序每隔几秒钟轮询服务器以获取新消息。当收到新消息时,会打开一个新窗口来显示它。这必须使用 Dispatcher 类在 UI 线程上完成。
问题在于,当显示新窗口时,焦点从 TextBox 移开,从而打断了输入。这很烦人!在 MSN Messenger您可以在收到消息的同时继续输入您自己的消息。它是如何完成的?
作为一种解决方法,当 TextBox 具有焦点时,我会推迟带有新消息的弹出窗口,但应该有更好的方法!
最佳答案
答案很简单:由于 .NET 3.5 SP1 WPF 表单具有 ShowActivated
属性(property)。将此设置为 false,任何标记的形式都不会再窃取焦点!
关于.net - 如何防止新的 WPF 表单窃取焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456529/