我在wpf应用程序中有多个窗口。我发现我必须在各种私有函数中不断引用这些窗口,如下所示:
var P1 = Application.Current.Windows .Cast<Window>() .FirstOrDefault(window => window is Player1Screen) as Player1Screen;
字符串什么是最简单的方法来声明一次,然后在任何地方访问它?
lrl1mhuk1#
你可以在你的项目的任何类中通过一个公共静态属性来公开它(例如App类):
App
public static Player1Screen Player1Screen { get { return Application.Current.Windows .OfType<Player1Screen>() .FirstOrDefault(); } }
字符串请注意,我稍微简化了代码。
epggiuax2#
如果你想要一些更可重用的东西,你可以创建一个扩展方法来查找窗口。
public static class AppEx { public T FindWindowOfType<T>(this Application app) where T:Window { return app.Windows.OfType<T>().FirstOrDefault(); } }
字符串所以现在:
Player1Screen win = Application.Current.FindWindowOfType<Player1Screen>();
型
2条答案
按热度按时间lrl1mhuk1#
你可以在你的项目的任何类中通过一个公共静态属性来公开它(例如
App
类):字符串
请注意,我稍微简化了代码。
epggiuax2#
如果你想要一些更可重用的东西,你可以创建一个扩展方法来查找窗口。
字符串
所以现在:
型