我正试图让所有打开的窗户。我尝试使用System.Windows.Application.Current.Windows
,但我在foreach
循环的行中得到了Null Pointer Exception。有谁知道出了什么问题?
public Window getWindow(String Title)
{
Window windowObject = null;
Console.WriteLine("Inside getWindow");
foreach (Window window in System.Windows.Application.Current.Windows)
{
if (window.Title == Title)
{
windowObject = window;
}
}
return windowObject;
}
答案 0 :(得分:6)
这是在WPF中正在运行的应用程序中循环浏览所有打开的窗口的方法:
chart_Series
如果您想知道窗体使用应用程序而不是应用程序。 再见。
答案 1 :(得分:4)
Current
或Windows
为null
Windows property只能从创建Application对象的线程进行访问,这只能在创建应用程序对象后的WPF应用程序中使用。
答案 2 :(得分:1)
请记住,System.Windows是名称空间,而Application是引用当前应用程序上下文的实际类。这意味着'Application.Current.Windows'仅引用应用程序本身生成的所有窗口。尝试遍历所有窗口并打印标题。
在您的程序中发生的是,if语句将始终为false,除非Title等于Application生成的窗口,因此windowObject将保持为null,并且该方法将返回null。 p>