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]); } }
public void CalcSizes() { if ((TabCount == 2 & tabWidth * TabCount > ActualWidth - AddButton.ActualWidth) | (TabCount > 2 & tabWidth * TabCount > ActualWidth - AddButton.ActualWidth)) { var TabCount1 = 0; var AddButtonCount1 = 1; foreach (var ctrl in TabCollection) { try { ctrl.Width = (ActualWidth - AddButton.ActualWidth) / TabCount; Canvas.SetLeft(ctrl, TabCount1 * ctrl.Width); AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(AddButtonCount1 * ctrl.Width, AddButtonCount1 * ctrl.Width, TimeSpan.FromMilliseconds(moveButtonDuration))); TabCount1 += 1; AddButtonCount1 += 1; } catch (Exception ex) { Console.WriteLine("CalcSizes error: " + ex.Message); } } } }
public async Task CalcSizes() { if ((TabCount == 2 & tabWidth * TabCount > ActualWidth - AddButton.ActualWidth) | (TabCount > 2 & tabWidth * TabCount > ActualWidth - AddButton.ActualWidth)) { var TabCount1 = 0; var AddButtonCount1 = 1; for (int i = 0; i < TabCollection.Count; i++) { try { if ((ActualWidth - AddButton.ActualWidth) / TabCount > 1) { TabCollection[i].Width = (ActualWidth - AddButton.ActualWidth) / TabCount; AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(AddButtonCount1 * TabCollection[i].Width, AddButtonCount1 * TabCollection[i].Width, TimeSpan.FromMilliseconds(moveButtonDuration))); TabCollection[i].BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(Canvas.GetLeft(TabCollection[i]), TabCount1 * TabCollection[i].Width, TimeSpan.FromMilliseconds(moveButtonDuration))); TabCount1 += 1; AddButtonCount1 += 1; } } catch (Exception ex) { Console.WriteLine("CalcSizes error: " + ex.Message + " " + ex.Data + " "); } } } else { var TabCount1 = 0; var AddButtonCount1 = 1; foreach (var ctrl in TabCollection) { try { ctrl.Width = tabWidth; AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(Canvas.GetLeft(AddButton), AddButtonCount1 * tabWidth, TimeSpan.FromMilliseconds(moveButtonDuration))); ctrl.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(Canvas.GetLeft(ctrl), TabCount1 * tabWidth, TimeSpan.FromMilliseconds(moveButtonDuration))); TabCount1 += 1; AddButtonCount1 += 1; } catch (Exception ex) { Console.WriteLine("CalcSizes error: " + ex.Message + " " + ex.Data + " "); } } } }
public void AddTab(OpenTabCommandParameters commandParams, MainWindow mw) { UserControl userControl; if (commandParams.Control == null) { userControl = new TabView(mw, commandParams.Url); } else { userControl = commandParams.Control; } Dispatcher.BeginInvoke((Action)(() => { tab = new Tab(commandParams.Title, mw, userControl, commandParams.Brush); tab.Width = tabWidth; tab.Height = tabHeight; canvas.Children.Add(tab); Canvas.SetLeft(tab, TabCount * tabWidth); Canvas.SetTop(tab, 0); Canvas.SetTop(AddButton, 0); if (AddButtonCount == 1) { AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(0, AddButtonCount * tabWidth, TimeSpan.FromMilliseconds(moveButtonDuration))); } else { AddButton.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(Canvas.GetLeft(AddButton), AddButtonCount * tabWidth, TimeSpan.FromMilliseconds(moveButtonDuration))); } TabCount += 1; AddButtonCount += 1; TabCollection.Add(tab); var fade = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.FromSeconds(0.25), }; Storyboard.SetTarget(fade, tab); Storyboard.SetTargetProperty(fade, new PropertyPath(Button.OpacityProperty)); var sb = new Storyboard(); sb.Children.Add(fade); sb.Begin(); CalcSizes(); })); }