Пример #1
0
        private void OnSelectedItemChanged(DockItem oldValue, DockItem newValue)
        {
            SelectedItem = newValue;
            if (_closingItem != null)
            {
                _closingItem = null;
            }

            if (oldValue != null)
            {
                oldValue.StateChanged -= new EventHandler <DockItemStateEventArgs>(OnSelectedItemStateChanged);
            }

            if (newValue != null)
            {
                if (_timer == null)
                {
                    _timer          = new DispatcherTimer();
                    _timer.Interval = TimerInterval;
                    _timer.Tick    += new EventHandler(OnTimerTick);
                }
                _timer.Start();
                if (DockPositionHelper.IsAutoHide(newValue.DockPosition))
                {
                    newValue.StateChanged += new EventHandler <DockItemStateEventArgs>(OnSelectedItemStateChanged);
                }
            }
            else
            {
                if (_timer != null)
                {
                    _timer.Stop();
                }
            }
        }
Пример #2
0
        private DockTreeSplit GetParentSplit(DockTree dockTree)
        {
            Debug.Assert(dockTree.DockControl == DockControl);
            if (dockTree.Position == DockTreePosition.Document)
            {
                return(Splits[3]);
            }
            int index = DockControl.DockTreeZOrder.IndexOf(DockPositionHelper.GetDock(dockTree.Position));

            Debug.Assert(index != -1);
            return(Splits[index]);
        }
Пример #3
0
        private void OnSelectedItemStateChanged(object sender, DockItemStateEventArgs e)
        {
            DockItem selectedItem = SelectedItem;

            Debug.Assert(DockPositionHelper.IsAutoHide(selectedItem.DockPosition));
            if (e.StateChangeMethod == DockItemStateChangeMethod.ToggleAutoHide && e.ShowMethod == DockItemShowMethod.Select)
            {
                BeginClose();
            }
            else
            {
                SetupShowAnimation();
            }
        }
Пример #4
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();
        }
Пример #5
0
        /// <exclude/>
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            DockPosition dockPosition = (DockPosition)value;

            return(DockPositionHelper.IsAutoHide(dockPosition));
        }