如何获取WPF中打开的窗口数量

时间:2015-06-29 08:57:21

标签: c# asp.net wpf windows

我要求,如果打开一个window,则用户无法允许打开其他window,因为我尝试过以下代码。

if(System.Windows.Application.Current.Windows.Count == 0)
 {    
 //My code
 }

我正在检查当前打开的window计数,如果它大于1,则用户无法打开其他窗口,我将在if语句中提及

但是当我运行此代码时,它会给我错误

  

"对象引用未设置为对象的实例。"

任何解决方案

2 个答案:

答案 0 :(得分:1)

您可能会收到此错误,因为即使是第一个要加载的窗口,您也会应用此检查。为此,您可以在代码中应用空检查。 对于加载的窗口列表,您可以使用Application,

获取它
var loadedWindows = Application.Current.Windows.Cast<Window>()
                                               .Where(win => win.IsLoaded);

答案 1 :(得分:0)

如果您想知道从应用程序实例打开了多少个窗口,可以执行此操作

 l_WindowCount = 0;

 foreach(var Window in App.Current.Windows)
 {
    l_WindowCount += 1
 }

if(l_WindowCount > 1)
{
//do what you want to do here
}