如何模拟Visual Studio应用程序窗口激活?

时间:2012-03-20 20:43:53

标签: wpf window

我正在尝试做类似于visual studio对它的窗口做的事情。我有一个类似的选项卡界面,我已经添加了将选项卡移动到一个单独的窗口的功能。我想要获得的功能是用户激活应用程序的一个窗口,所有应用程序窗口都应该被放到顶部。我的第一个想法是覆盖OnActivated Window方法,我将激活所有其他应用程序窗口。但是,这是不够的,因为最终将所有其他窗口置于我刚刚激活的窗口之上(因为在窗口激活后调用OnActivated)。我无法在此事件中最后激活它,因为这会再次触发激活的事件(无限循环)。如果在激活窗口之前有一个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);
  }  
}

0 个答案:

没有答案