【发布时间】:2011-06-20 21:08:44
【问题描述】:
我正在使用Window.ShowDialog() 在我的 WPF (MVVM) 应用程序中打开一个模式窗口,但它允许我使用 Windows 任务栏 (Windows 7) 导航到其他窗口。
考虑一下:
我的应用程序中打开了 3 个非模态窗口。现在其中之一使用Window.ShowDialog() 打开一个模式窗口。我还将Application.MainWindow 设置为模态窗口的所有者。之所以如此,是因为我正在使用 MVVM 消息传递,并且打开新窗口的消息处理程序集中在 App.xaml.cs 中。窗口确实以模态方式打开-那里没有问题。但是,Windows 7 允许我从任务栏切换到其他应用程序窗口。这会导致模态窗口位于另一个窗口后面的情况,我不想这样做。
只要我打开模态窗口,我就不能在其他窗口上做任何事情,但是如果模态窗口只要打开就一直保持在顶部,那就太好了。有没有办法在模式打开时禁用任务栏切换?仅供参考 - 从应用程序启动的所有打开的窗口都在任务栏上显示为单独的条目。
提前致谢!
【问题讨论】:
-
我们能否从您创建成为模态对话框的窗口中获取一些代码?
-
您需要的是将窗口置于所有其他应用程序之上。我需要的是使窗口位于应用程序中的任何其他窗口之上,例如对话框窗口。对于我的要求,这两行: Owner = Application.Current.MainWindow;和 ShowInTaskbar = false;效果很好。为你 +1。
标签: wpf showdialog