WPF-версия Application.OpenForms
У меня есть приложение, в котором мне нужно будет открыть другое окно WPF. В WinForms я смог использовать:
MainWindow main = (MainWindow)Application.OpenForms["MainWindow"];
Чтобы иметь возможность получить доступ к форме. Сейчас в WPF его нет. Я видел другой пост на этом сайте, который имеет отношение, однако он использует Application.Window, который не содержится в вызове. Я просто:
- Текущий
- Равно
- GetContentStream
- GetCookie
- GetRemoteStream
- GetResourceStream
- LoadComponet
- RefrenceEquals
- ResourceAssembly
- SetCookie
Итак, мой вопрос заключается в следующем: есть ли другая версия для OpenForms, или есть просто другой способ сделать это?
3 ответа
Попробуйте посмотреть на: Application.Current
, Более конкретно, Application.Current.Windows
,
Window2 wndw = new Window2();
wndw.Owner = this;
foreach (Window w in Application.Current.Windows)
{
if (w.Name == wndw.Name)
{
if (w.IsActive)
{
w.Focus();
return;
}
else
{
w.Show();
return;
}
}
}
Я могу опоздать сюда, но на всякий случай, если это кому-то понадобится. Если Application.OpenForms отсутствует на вашей стороне, это потому, что вам нужно использовать System.Windows.Forms.Application.OpenForms
Например:
FormCollection fc = System.Windows.Forms.Application.OpenForms; Объект fc содержит такие свойства, как: Count и InnerList (очень полезно)
Надеюсь, это поможет, даже если это 2021 год, я думал, что кому-то понадобится эта информация (я нигде не видел, когда искал)