У меня есть дочернее окно, которое должно быть поверх другого, которое является основным. Я не хочу указывать дочерний элемент как TopMost
, так как пользователь может захотеть проверить данные для другого windows. Короче говоря, ребенок должен следовать за тем, чтобы максимизировать / минимизировать события как основной родительский
Основной минимизировать ---> Минимизировать дочерний *
Основной развернуть ---> Максимизировать дочерний *
Делать что я определил в основном:
this.StateChanged += MainWindow_StateChanged;
и в этом
public static event EventHandler OnMainWindowStateChanged;
private void MainWindow_StateChanged(object sender, EventArgs e)
{
OnMainWindowStateChanged?.Invoke(sender,e);
}
Лог c должен быть:
Главный класс главного окна --- > Класс движка главного окна ----> дочернее окно
Чтобы поставить несколько имен, это:
public MainWindow()
{
this.StateChanged += MainWindow_StateChanged;
//call to the engine
m_Designer = new CWorkFlowEditor(this, App.IsDeployment, OnMainWindowStateChanged);
}
...
//In the engine:
public EventHandler OnMainWindowStateChanged;
public CWorkFlowEditor(object parent, bool IsDeployment, EventHandler _OnMainWindowStateChanged)
{
OnMainWindowStateChanged = _OnMainWindowStateChanged;
}
...
// Finally, when I want to create the final child window:
wndPluginConfigurator = new Window() {};
OnMainWindowStateChanged += MainWindow_StateChanged;
wndPluginConfigurator.ShowDialog();
}
private void MainWindow_StateChanged(object sender, EventArgs e)
{
Console.Beep();
}
Так что факт в том, что это событие никогда не вызывается для указанного выше события OnMainWindowStateChanged всегда значение NULL. И это для OnMainWindowStateChanged также всегда равно нулю.
Очевидно, что если есть лучший способ достичь результата, и я бы будьте очень благодарны за объяснение
Спасибо за помощь
ДОБАВИТЬ: Главное окно не видно CWorkflowEditor. Поэтому я попытался передать EventHAndler через интерфейс, но это тоже не сработало.