// Windowのアクティブ化時(一連のイベントの最後になることが多い(が違うこともある public void OnActiveFrameChanged(IVsWindowFrame oldFrame, IVsWindowFrame newFrame) { Debug.WriteLine($"OnActiveFrameChanged:{newFrame}"); // ソリューション エクスプローラーをタブから最初に開いた際に元に戻ってしまう // もう面倒なのでしつこいくらいに変更をかけるw TabView.AddOrUpdate(newFrame); }
// 起動時にすでにタブになっているViewを取得 internal void Initialize() { var ww = GetAllToolWindowView().ToList(); Debug.WriteLine($"Initialize count:{ww.Count}"); foreach (var twView in ww) { var frame = tmpFrames.FirstOrDefault(x => x.FrameView == twView); TabView.AddOrUpdate(frame); } }
// タブが開いた時・閉じた時?(なにがnewなのか謎) public void OnFrameIsOnScreenChanged(IVsWindowFrame frame, bool newIsOnScreen) { Debug.WriteLine($"OnFrameIsOnScreenChanged:{frame}"); TabView.AddOrUpdate(frame); }