.net - 如何防止新的 WPF 表单窃取焦点?

标签 .net wpf multithreading focus

我写了一个简单的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/

相关文章:

c++ - 捕获 boost 线程中断和退出线程的正确方法

c# - 除了触发存储过程 368 次来更新数据库之外,还有什么好的替代方法?

c# - 排列最小到最大的整数

c# - 在 .NET 中设置 HttpClient 以使其与多个线程一起工作并提供并发性

c# - WPF下载文件并同时保存

wpf - TreeView.ItemTemplate HierarchicalDataTemplate 中的数据在切换 Selected TreeItem 时被删除

c# - 将dll文件添加到C#项目

c# - WPF:在 DataTrigger 中使用复选框 IsChecked 属性

c# - 多线程windows phone应用程序

c++ - 用于服务网络连接的英特尔 TBB 任务 - 好的模型?