Esempio n. 1
0
        internal DockTreeSplit(DockTreeClient dockTreeClient, Dock position, DockTreeSplit nextSplit)
        {
            _dockTreeClient = dockTreeClient;
            DockControl     = dockTreeClient.DockControl;
            Position        = position;

            if (position == Dock.Left)
            {
                Child1 = DockControl.GetDockTree(DockPositionHelper.GetDockControlTreePosition(position));
                if (nextSplit != null)
                {
                    Child2 = nextSplit;
                }
                else
                {
                    Child2 = DockControl.GetDockTree(DockControlTreePosition.Document);
                }
                Orientation       = Orientation.Horizontal;
                IsSplitterTopLeft = true;
            }
            else if (position == Dock.Right)
            {
                Child2 = DockControl.GetDockTree(DockPositionHelper.GetDockControlTreePosition(position));
                if (nextSplit != null)
                {
                    Child1 = nextSplit;
                }
                else
                {
                    Child1 = DockControl.GetDockTree(DockControlTreePosition.Document);
                }
                Orientation       = Orientation.Horizontal;
                IsSplitterTopLeft = false;
            }
            else if (position == Dock.Top)
            {
                Child1 = DockControl.GetDockTree(DockPositionHelper.GetDockControlTreePosition(position));
                if (nextSplit != null)
                {
                    Child2 = nextSplit;
                }
                else
                {
                    Child2 = DockControl.GetDockTree(DockControlTreePosition.Document);
                }
                Orientation       = Orientation.Vertical;
                IsSplitterTopLeft = true;
            }
            else
            {
                Debug.Assert(position == Dock.Bottom);
                Child2 = DockControl.GetDockTree(DockPositionHelper.GetDockControlTreePosition(position));
                if (nextSplit != null)
                {
                    Child1 = nextSplit;
                }
                else
                {
                    Child1 = DockControl.GetDockTree(DockControlTreePosition.Document);
                }
                Orientation       = Orientation.Vertical;
                IsSplitterTopLeft = false;
            }

            UpdateSplitterDistance();
        }