Как имитировать активацию окна приложения Visual Studio? - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь сделать что-то похожее на то, что делает 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);
  }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...