当模态窗口处于活动状态时,在主窗口中启用事件

时间:2017-06-13 14:57:54

标签: c# wpf modal-dialog mouseevent

在WPF窗口中,我实现了一个组件,该组件指示系统中的所有活动错误。 该组件位于任务栏中

  • 如果在组件上悬停一个工具提示,则会显示摘要信息
  • 如果单击控件,则会激活一个显示详细列表的面板。

在应用程序中,我们还使用实现为模态窗口的向导。

现在,问题在于:如果在活动向导期间系统中发生了新事件,则任务栏中的组件会更新,但我无法使用悬停事件查看摘要。由于隐藏父消息循环的模式对话框,这两个事件(悬停和单击)都不可用。 当模态向导存在时,至少使悬停消息处于活动状态是他们的方式(或者是什么是最好的解决方案/建议)。

感谢。

1 个答案:

答案 0 :(得分:0)

对于nothin': - )

,他们不称之为“模态” 抛开幽默,根据您的具体情况,这里有两个选项,第三个选项更复杂,您可能不需要它,但它可以处理更广泛的场景:

选项1。听起来你有一个普通的应用程序没有显示它的MainWindow并且只使用它的任务栏存在。如果是这种情况,那么根本不需要对话框,只需使用MainWindow本身作为“对话框”。

选项2。如果您已经明显使用了MainWindow,那么请使用伪模式方法,这样您实际上不会使用对话框,但除控件之外的所有其他控件都充当您的“对话框”控件被隐藏/折叠。

选项3.使用两个单独的过程。基本上,这是两个独立的应用程序 - 一个是您的任务栏组件,另一个是您的主应用程序。使用IPC链接两者 - 例如我已经使用Windows管道做这样的事情,它工作正常。