我编写了一个简单的MSN式程序,它将使用WCF发送和检索邮件。主窗体包含一个文本框,用于键入要发送的消息。在后台,应用程序每隔几秒钟轮询一次服务器以获取新消息。收到新消息时,将打开一个新窗口以显示该消息。这必须使用Dispatcher类在UI线程上完成。
问题是当显示新窗口时,焦点会从TextBox移开,因此打字会中断。这很烦人!在MSN Messenger中,可以在接收消息时继续输入您自己的消息。怎么做?
作为一种解决方法,当TextBox具有焦点时,我使用新消息推迟弹出窗口,但应该有更好的方法!
答案 0 :(得分:53)
答案很简单:由于.NET 3.5 SP1 WPF表单具有ShowActivated
属性。将此设置为false,这样标记的任何形式都不会再没有重点!
答案 1 :(得分:-2)
您可以将窗口的Focusable属性设置为false。
答案 2 :(得分:-2)
在我的应用程序中,我需要在所有其他窗口的顶部显示一个通知窗口,同时我的MainWindow被最小化,但没有窃取焦点。
所以我这样做:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Topmost = true;
this.Topmost = false;
}