/// <summary> /// Show tampoary pane attached to current docking buttno /// </summary> /// <param name="smooth">True if resize animation is enabled</param> private void ShowTempPane(bool smooth) { _tempPane = new OverlayDockablePane(this, _currentButton.DockableContent, _currentButton.DockingButtonGroup.Dock); _tempPane.OnStateChanged += new EventHandler(_tempPane_OnStateChanged); DockablePane pane = gridDocking.GetPaneFromContent(_currentButton.DockableContent) as DockablePane; panelFront.Children.Clear(); _tempPane.SetValue(DockPanel.DockProperty, _currentButton.DockingButtonGroup.Dock); panelFront.Children.Add(_tempPane); DockPanelSplitter splitter = null; bool right_left = false; double length = 0.0; switch (_currentButton.DockingButtonGroup.Dock) { case Dock.Left: splitter = new DockPanelSplitter(_tempPane, null, SplitOrientation.Vertical); length = pane.PaneWidth; right_left = true; break; case Dock.Right: splitter = new DockPanelSplitter(null, _tempPane, SplitOrientation.Vertical); length = pane.PaneWidth; right_left = true; break; case Dock.Top: splitter = new DockPanelSplitter(_tempPane, null, SplitOrientation.Horizontal); length = pane.PaneHeight; right_left = false; break; case Dock.Bottom: splitter = new DockPanelSplitter(null, _tempPane, SplitOrientation.Horizontal); length = pane.PaneHeight; right_left = false; break; } splitter.SetValue(DockPanel.DockProperty, _currentButton.DockingButtonGroup.Dock); panelFront.Children.Add(splitter); if (smooth) ShowOverlayPanel(length, right_left); else { if (right_left) _tempPane.Width = length; else _tempPane.Height = length; panelFront.Opacity = 1.0; } }