public void RemoveTab(Tab tabToRemove) { TabCount = 0; AddButtonCount = 1; TabCollection.Remove(tabToRemove); canvas.Children.Remove(tabToRemove); foreach (var ctrl in TabCollection) { ctrl.Width = tabWidth; Canvas.SetLeft(ctrl, TabCount * tabWidth); AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(Canvas.GetLeft(AddButton), AddButtonCount * tabWidth, TimeSpan.FromMilliseconds(moveButtonDuration))); TabCount += 1; AddButtonCount += 1; CalcSizes(); tabToRemove.mainWindow.container.Children.Remove(tabToRemove.form); if (tabToRemove.form.GetType() == typeof(TabView)) { TabView tv = (tabToRemove.form as TabView); tv.Shutdown(); } SelectTab(TabCollection[TabCollection.Count - 1]); } }