我正在尝试做类似于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);
}
}