internal void SplitterMoved(DockSplitter dockSplitter, double deltaX, double deltaY) { if (deltaX != 0 || deltaY != 0) { switch (dockSplitter.Orientation) { case DockSplitter.Orientations.Horizontal: switch (dockSplitter.DockPosition) { case System.Windows.Controls.Dock.Bottom: Height = Math.Max(MinimumWindowSize.Height, ActualHeight + deltaY); break; case System.Windows.Controls.Dock.Top: Height = Math.Max(MinimumWindowSize.Height, ActualHeight - deltaY); Top = Math.Max(0, Top + deltaY); break; default: throw new NotImplementedException(); } break; case DockSplitter.Orientations.NE: Height = Math.Max(MinimumWindowSize.Height, ActualHeight - deltaY); Top = Math.Max(0, Top + deltaY); Width = Math.Max(MinimumWindowSize.Width, ActualWidth + deltaX); break; case DockSplitter.Orientations.NW: Height = Math.Max(MinimumWindowSize.Height, ActualHeight - deltaY); Top = Math.Max(0, Top + deltaY); Width = Math.Max(MinimumWindowSize.Width, ActualWidth - deltaX); Left = Math.Max(0, Left + deltaX); break; case DockSplitter.Orientations.SE: Height = Math.Max(MinimumWindowSize.Height, ActualHeight + deltaY); Width = Math.Max(MinimumWindowSize.Width, ActualWidth + deltaX); break; case DockSplitter.Orientations.SW: Height = Math.Max(MinimumWindowSize.Height, ActualHeight + deltaY); Width = Math.Max(MinimumWindowSize.Width, ActualWidth - deltaX); Left = Math.Max(0, Left + deltaX); break; case DockSplitter.Orientations.Vertical: switch (dockSplitter.DockPosition) { case System.Windows.Controls.Dock.Left: Width = Math.Max(MinimumWindowSize.Width, ActualWidth - deltaX); Left = Math.Max(0, Left + deltaX); break; case System.Windows.Controls.Dock.Right: Width = Math.Max(MinimumWindowSize.Width, ActualWidth + deltaX); break; default: throw new NotImplementedException(); } break; default: break; } } }
internal void SplitterDragStart(DockSplitter dockSplitter) { }