我想向指定的窗口发送不同的消息,但我不知道如何从所有窗口中识别给定的窗口。是使用窗口的“名称”属性的方式吗?
问问题
528 次
2 回答
0
另一种选择是使用反射来查找Windows
执行程序集中的所有内容:
var windows = System.Reflection.Assembly.GetExecutingAssembly()
.GetTypes().OfType<Window>();
拥有 Windows 集合后,您可以按名称找到其中的任何一个:
Window win = windows.SingleOrDefault( x => x.Name == "MyName" );
于 2012-05-23T13:47:56.513 回答
0
您可以创建自己的 Window 类
public class MyCoolWindow : Window
{
public string WindowKey {get;set;}
}
并在每个窗口上创建一个新窗口到 glbal 集合,例如:
var windows = new List<MyCoolWindow>();
public void AddAndShowWindow(MyCoolWindow wnd)
{
windows.Add(wnd);
wnd.Show();
}
查找窗口,例如
public MyCoolWindow FindWindowByKey(string windowKey)
{
return windows.Where(w=>w.WindowKey == windowKey).SelectSingleOrDefault();
}
只是例子。
于 2012-05-23T13:33:30.927 回答