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(); } } }
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]); }
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(); } }
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(); }
/// <exclude/> public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { DockPosition dockPosition = (DockPosition)value; return(DockPositionHelper.IsAutoHide(dockPosition)); }