Я пытаюсь сделать что-то похожее на то, что делает Visual Studio со своими окнами.У меня есть похожий интерфейс с вкладками, и я добавил возможность отсоединять вкладку в отдельном окне.Функциональность, которую я пытаюсь получить, - это когда пользователь активирует одно из окон приложения, все окна приложения должны быть выведены наверх.Моей первой мыслью было переопределить метод OnActivation Window, где я бы активировал все остальные окна приложения.Однако этого недостаточно, потому что это приводит к тому, что все остальные окна отображаются поверх окна, которое я только что активировал (поскольку OnActivation вызывается после того, как окно активировано).Я не могу активировать его последним в этом событии, потому что это вызовет активированное событие снова (бесконечный цикл).Было бы неплохо, если бы было событие OnActivating, которое было вызвано до того, как окно было активировано.
Кто-нибудь еще делал это?
Это не работает, потому что оно выводит другие окна сверхуиз только что активированного.
public partial class EditorWindow : Window
{
public event EventHandler ActivateOtherWindows;
protected override void OnActivated(EventArgs e)
{
if(ActivateOtherWindows != null)
{
ActivateOtherWindows(this, EventArgs.Empty);
}
base.OnActivated(e);
}
}