Пример #1
0
        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]);
            }
        }
Пример #2
0
        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);
                    }
                }
            }
        }
Пример #3
0
        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 + " ");
                    }
                }
            }
        }
Пример #4
0
        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();
            }));
        }