private void DockExecuted(DockEventArgs e) { var groups = e.SourceContent.OfType <TabWellModelBase>().ToList(); var newGroup = new ToolWellModel() { Dock = (Dock)((int)e.TargetDock - 5) }; foreach (var group in groups) { var allChildren = group.Children.ToList(); foreach (var item in allChildren) { group.Children.Remove(item); item.IsPinned = false; item.IsActive = false; newGroup.Children.Add(item); } } var newSplit = new SplitViewModel(); newSplit.Orientation = e.TargetDock == DockTarget.DockLeft || e.TargetDock == DockTarget.DockRight ? Orientation.Horizontal : Orientation.Vertical; var existing = Content; Content = null; if (e.TargetDock == DockTarget.DockTop || e.TargetDock == DockTarget.DockLeft) { newSplit.Item1 = newGroup; newSplit.Item2 = existing; newSplit.Item1Size = new GridLength(e.DesiredSize); } else { newSplit.Item1 = existing; newSplit.Item2 = newGroup; newSplit.Item2Size = new GridLength(e.DesiredSize); } Content = newSplit; newGroup.IsActive = true; newGroup.SelectedItem = newGroup.Children.First(); e.SourceWindow.Close(); }
private ToolWellModel GenerateToolGroup(Dock dock) { var item = new ToolWellModel() { Dock = dock }; for (int i = 0; i < 3; i++) { item.Children.Add(new TabModel { Header = $"Tool Item {i}", ToolTip = $"Tool Item {i} Long Name", Content = new ToolControl(), Usage = TabItemType.Tool }); } return(item); }