private void AddPane(IDockingPane pane) { if (pane == null) { throw new ArgumentNullException(nameof(pane)); } var paneControl = new RadPane { Tag = pane }; paneControl.DataContext = new PaneModel(pane); paneControl.SetBinding(HeaderedContentControl.HeaderProperty, new Binding(nameof(PaneModel.Header))); paneControl.PaneHeaderVisibility = pane.PaneHeaderVisibility; paneControl.CanUserClose = pane.CanUserClose; DockingPanel.SetInitialSize(paneControl, new System.Windows.Size(pane.InitialWidth, pane.InitialHeight)); var content = new ContentControl(); RegionManager.SetRegionName(content, pane.RegionName); paneControl.Content = content; VM.Panes.Add(paneControl); }
private static void AddPaneForViewModel(RadDocking dock, WindowViewModel model, Size?floatingSize, Point?floatingLocation) { var pane = new RadPane { DataContext = model }; pane.SetBinding(RadPane.IsHiddenProperty, new Binding("IsHidden") { Mode = BindingMode.TwoWay }); pane.SetBinding(RadPane.HeaderProperty, new Binding("Header")); var group = new RadPaneGroup { Items = { pane } }; var splitContainer = new RadSplitContainer { Items = { group } }; splitContainer.InitialPosition = DockState.FloatingOnly; if (floatingSize.HasValue) { RadDocking.SetFloatingSize(splitContainer, floatingSize.Value); } if (floatingLocation.HasValue) { RadDocking.SetFloatingLocation(splitContainer, floatingLocation.Value); } dock.Items.Add(splitContainer); }
protected override void RemovePane(RadPane pane) { pane.DataContext = null; pane.Content = null; pane.ClearValue(RadDocking.SerializationTagProperty); pane.RemoveFromParent(); }
protected override RadPane CreatePaneForItem(object item) { var viewModel = item as IPaneViewModel; if (viewModel != null) { RadPane pane; if (viewModel.IsDocument) { pane = new RadDocumentPane(); } else { pane = new RadPane(); pane.Width = 600; } pane.DataContext = item; pane.SetValue(View.IsGeneratedProperty, true); RadDocking.SetSerializationTag(pane, viewModel.Header); pane.Content = ViewLocator.LocateForModel(viewModel, null, null); ViewModelBinder.Bind(viewModel, pane, null); viewModel.IsPaneActive = true; viewModel.IsSelected = true; return(pane); } return(base.CreatePaneForItem(item)); }
void RemoveCharterFromHidden(RadPane pane) { if (pane != null && _hiddenCharters.Contains(pane)) { _hiddenCharters.Remove(pane); } }
public PanelInstance(IPanelDescriptor descriptor, IPanel panel, FrameworkElement view, RadPane radPane) { Descriptor = descriptor; Panel = panel; View = view; RadPane = radPane; }
/// <summary> /// Determines if the specific Pane's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane /// </summary> private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position) { PaneType paneToDockType = GetPaneType(paneToDock); PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup); switch (paneToDockType) { case PaneType.Green: switch (paneInTargetGroupType) { case PaneType.Green: // The Top, Bottom, Left, Right and Center compasses will be shown when dragging a Green Pane over a Green Pane //return true; // The Center compass only will be shown when dragging a Green Pane over a Green Pane return position != DockPosition.Top && position != DockPosition.Bottom && position != DockPosition.Left && position != DockPosition.Right; case PaneType.Purple: return false; } break; case PaneType.Purple: switch (paneInTargetGroupType) { case PaneType.Green: return false; case PaneType.Purple: return true; } break; } return false; }
protected override void AddPane(RadDocking radDocking, RadPane pane) { if (!(pane.Tag is DockingPane paneTag)) { base.AddPane(radDocking, pane); return; } var paneGroup = radDocking.SplitItems. Where(p => p is RadPaneGroup). Cast <RadPaneGroup>(). FirstOrDefault(g => g.Tag is DockingPaneContainer groupTag && groupTag.GUID == paneTag.InitPaneGroupGUID ); if (paneGroup != null) { paneGroup.Items.Add(pane); } //否则便新建一个Container,group; else { base.AddPane(radDocking, pane); return; } }
private void AddPaneWithSerializationTagButtonClick(object sender, RoutedEventArgs e) { RadPane radPane = new RadPane() { Title = "New RadPane with SerializationTag", Name = "NewRadPane" }; radPane.Content = new TextBox() { Text = "TextBox" }; RadDocking.SetSerializationTag(radPane, "NewRadPane"); RadPaneGroup radPaneGroup = new RadPaneGroup(); RadSplitContainer radSplitContainer = new RadSplitContainer() { InitialPosition = DockState.FloatingDockable }; RadDocking.SetFloatingLocation(radSplitContainer, new Point(700, 130)); RadDocking.SetFloatingSize(radSplitContainer, new Size(500, 200)); radPaneGroup.Items.Add(radPane); radSplitContainer.Items.Add(radPaneGroup); this.Docking.Items.Add(radSplitContainer); DisableButton(sender); }
private void InsertItem(int index, object paneModel) { if (this.Panes.ContainsKey(paneModel)) return; var paneViewModel = paneModel as PaneModel; var pane = new RadPane { // TODO: Set the needed properties of the RadPane DataContext = paneViewModel, Header = paneViewModel.Header, Content = paneViewModel.Content, }; this.Panes.Add(paneModel, pane); if (this.Group.Items.Count != 0) { this.Group.Items.Insert(index, pane); } else { this.Group.Items.Add(pane); } }
private void InsertItem(int index, object paneModel) { if (this.Panes.ContainsKey(paneModel)) { return; } var paneViewModel = paneModel as PaneModel; var pane = new RadPane { // TODO: Set the needed properties of the RadPane DataContext = paneViewModel, Header = paneViewModel.Header, Content = paneViewModel.Content, }; this.Panes.Add(paneModel, pane); if (this.Group.Items.Count != 0) { this.Group.Items.Insert(index, pane); } else { this.Group.Items.Add(pane); } }
public void Handle(ShowDocumentPaneMessage message) { var paneKey = string.Format("{0}_{1}_{2}", message.Sender.GetType().AssemblyQualifiedName, message.Sender.GetType().FullName, message.Title); if (_customDocumentPanes.ContainsKey(paneKey) == false || _customDocumentPanes[paneKey] == null) { var newPane = new RadPane(); newPane.CanDockInDocumentHost = true; _customDocumentPanes[paneKey] = newPane; } var pane = _customDocumentPanes[paneKey]; pane.Content = message.PaneContent; pane.Header = message.Title; if (message.PaneProperties != null) { _customDocumentPaneProperties[pane] = message.PaneProperties; } if (DocumentPanes.Contains(pane) == false) { DocumentPanes.Add(pane); } FocusDocumentPane(pane); }
private void Item_Click(object sender, System.Windows.RoutedEventArgs e) { MenuItem item = sender as MenuItem; switch (item.Header.ToString()) { case "关闭": currentRadPane = RadPaneGroup.EnumeratePanes().Where(p => !p.IsHidden && p.IsSelected).FirstOrDefault(); RadPaneGroup.RemovePane(currentRadPane); break; case "除此之外全部关闭": currentRadPane = RadPaneGroup.EnumeratePanes().Where(p => !p.IsHidden && p.IsSelected).FirstOrDefault(); var panesToClose = RadPaneGroup.EnumeratePanes().Where(p => p != currentRadPane); for (int i = panesToClose.Count() - 1; i >= 0; i--) { this.RadPaneGroup.RemovePane(panesToClose.ElementAt(i)); } break; case "全部关闭": RadPaneGroup.Items.Clear(); break; } }
public void Handle(ShowPropertyPaneMessage message) { var paneKey = string.Format("{0}_{1}_{2}", message.Sender.GetType().AssemblyQualifiedName, message.Sender.GetType().FullName, message.Title); if (_customPropertyPanes.ContainsKey(paneKey) == false || _customPropertyPanes[paneKey] == null) { var newPane = new RadPane(); newPane.CanDockInDocumentHost = false; newPane.CanUserClose = message.IsUserCloseable; _customPropertyPanes[paneKey] = newPane; } var pane = _customPropertyPanes[paneKey]; pane.Content = message.PaneContent; pane.Header = message.Title; if (PropertyPanes.Contains(pane) == false) { PropertyPanes.Add(pane); } FocusPropertyPane(pane); }
protected override void AddPane(RadDocking radDocking, RadPane pane) { var paneModel = pane.DataContext as PaneViewModel; if (paneModel != null && !(paneModel.IsDocument)) { RadPaneGroup group = null; switch (paneModel.InitialPosition) { case DockState.DockedRight: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "rightGroup") as RadPaneGroup; if (group != null) { group.Items.Add(pane); } return; case DockState.DockedBottom: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "bottomGroup") as RadPaneGroup; if (group != null) { group.Items.Add(pane); } return; case DockState.DockedLeft: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "leftGroup") as RadPaneGroup; if (group != null) { group.Items.Add(pane); } return; case DockState.FloatingDockable: var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer(); group = radDocking.GeneratedItemsFactory.CreatePaneGroup(); fdSplitContainer.Items.Add(group); group.Items.Add(pane); radDocking.Items.Add(fdSplitContainer); pane.MakeFloatingDockable(); return; case DockState.FloatingOnly: var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer(); group = radDocking.GeneratedItemsFactory.CreatePaneGroup(); foSplitContainer.Items.Add(group); group.Items.Add(pane); radDocking.Items.Add(foSplitContainer); pane.MakeFloatingOnly(); return; case DockState.DockedTop: default: return; } } base.AddPane(radDocking, pane); }
public void OpenDocument(string header, FrameworkElement control, bool isBinding) { if (control == null) { MessageBox.Show("No valid control to show as document window!"); return; } if (string.IsNullOrEmpty(header)) { MessageBox.Show("No valid header to show as document window!"); return; } if (isBinding) { if (ActiveExist(control)) { return; } else { for (int i = 0; i < MainGroup.Items.Count; i++) { var p = MainGroup.Items[i] as RadPane; if (p.Header != null && p.Header.ToString() == header) { p.IsActive = true; return; } } } } var pane = new RadPane() { }; if (isBinding) { Binding binding = new Binding(); binding.Path = new PropertyPath(header); binding.Source = control.DataContext; BindingOperations.SetBinding(pane, RadPane.HeaderProperty, binding); } else { pane.Header = header; } pane.Content = control; MainGroup.AddItem(pane, Telerik.Windows.Controls.Docking.DockPosition.Center); pane.Unloaded += Pane_Unloaded; if (projectViewModel != null) { var vm = control.DataContext; if (vm is INotifiedViewModel) { projectViewModel.OpenedViewModel.Add(vm as INotifiedViewModel); } } }
void IFlyoutBehavior.OnPaneActivated(IFlyoutHost host, RadPane targetPane) { host.SetSelectedPane(targetPane); if (host.CurrentState == FlyoutState.Closed) { host.StartOpenAnimation(); } }
void IFlyoutBehavior.OnPaneDeactivated(IFlyoutHost host, RadPane targetPane) { var selectedPane = host.SelectedPane; if (selectedPane != null && !selectedPane.IsActive && host.CurrentState == FlyoutState.Opened) { host.StartCloseAnimation(); } }
void AddCharterToHidden(RadPane pane) { if (pane != null) { _hiddenCharters.Where(p => RadDocking.GetSerializationTag(p) == RadDocking.GetSerializationTag(pane)) .ToList().ForEach(p => _hiddenCharters.Remove(p)); _hiddenCharters.Add(pane); } }
private static void SetCharterPaneBindings(RadPane pane) { var b = new Binding("Header") { Source = pane.Content }; pane.SetBinding(RadPane.HeaderProperty, b); }
public void AddPane(UserControl UIElement) { if (UIElement.DataContext is Models.ViewModelPane vm) { if (Panes.Where(a => a.Header?.ToString().Replace("*", "") == vm.Header.Replace("*", "") && a.IsVisible).Count() > 0) { ShowPane(Panes.Single(a => a.Header?.ToString().Replace("*", "") == vm.Header.Replace("*", "") && a.IsVisible)); } else { var pane = new RadPane { Content = UIElement, }; vm.CloseAction = new Action(() => { pane.IsHidden = true; }); pane.DataContext = vm; pane.IsVisibleChanged += (sender, e) => { }; Binding binding = new Binding(); binding.Path = new PropertyPath("Header"); // свойство элемента-источника pane.SetBinding(RadPane.HeaderProperty, binding); // установка привязки для элемента-приемника Panes.Add(pane); } } else if (UIElement.DataContext is Models.ViewModelPaneReactiveObject vm2) { if (Panes.Where(a => a.Header?.ToString().Replace("*", "") == vm2.Header.Replace("*", "") && a.IsVisible).Count() > 0) { ShowPane(Panes.Single(a => a.Header?.ToString().Replace("*", "") == vm2.Header.Replace("*", "") && a.IsVisible)); } else { var pane = new RadPane { Content = UIElement, }; vm2.CloseAction = new Action(() => { pane.IsHidden = true; }); pane.DataContext = vm2; pane.IsVisibleChanged += (sender, e) => { }; Binding binding = new Binding(); binding.Path = new PropertyPath("Header"); // свойство элемента-источника pane.SetBinding(RadPane.HeaderProperty, binding); // установка привязки для элемента-приемника Panes.Add(pane); } } }
private void RBtnRelTesaScjn_Click(object sender, RoutedEventArgs e) { RadPane pane = new RadPane(); tematScjn = new RTemasScjn(RBtnArbolPdf); pane.Content = tematScjn; pane.Header = "Temático - SCJN"; PanelCentral.AddItem(pane, DockPosition.Center); }
private void RBtnListaFiguras_Click(object sender, RoutedEventArgs e) { RadPane pane = new RadPane(); figuras = new LFiguras(); pane.Content = figuras; pane.Header = "Figuras Jurídicas"; PanelCentral.AddItem(pane, DockPosition.Center); }
private void RBtnTematico_Click(object sender, RoutedEventArgs e) { RadPane pane = new RadPane(); tematicos = new LTematicos(); pane.Content = tematicos; pane.Header = " Temáticos "; PanelCentral.AddItem(pane, DockPosition.Center); }
private void RBtnGenericRelaciones_Click(object sender, RoutedEventArgs e) { RadPane pane = new RadPane(); relacionesGenericos = new RGenFigScjn(listaGenericos); pane.Content = relacionesGenericos; pane.Header = "Establecer relaciones"; PanelCentral.AddItem(pane, DockPosition.Center); }
private void AddSecurityActionPane() { frmSecurityAction = new frmSecurityAction(); RadPane pane = new RadPane(); pane.CanUserClose = false; pane.Header = "دسترسی"; pane.Content = frmSecurityAction; pnlActionList.Items.Add(pane); }
protected override void AddPane(RadDocking radDocking, RadPane pane) { var paneViewModel = pane.DataContext as DetectivePaneViewModelBase; if (paneViewModel != null) { radDocking.PaneStateChange += this.RadDocking_PaneStateChange; RadPaneGroup group = null; switch (paneViewModel.DockPositionPosition) { case DetectiveDockPosition.DockedDocument: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedDocument") as RadPaneGroup; @group?.Items.Add(pane); return; case DetectiveDockPosition.DockedRight: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedRight") as RadPaneGroup; @group?.Items.Add(pane); return; case DetectiveDockPosition.DockedBottom: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedBottom") as RadPaneGroup; @group?.Items.Add(pane); return; case DetectiveDockPosition.DockedLeft: group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedLeft") as RadPaneGroup; @group?.Items.Add(pane); return; case DetectiveDockPosition.FloatingDockable: var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer(); group = radDocking.GeneratedItemsFactory.CreatePaneGroup(); fdSplitContainer.Items.Add(group); group.Items.Add(pane); radDocking.Items.Add(fdSplitContainer); pane.MakeFloatingDockable(); return; case DetectiveDockPosition.FloatingOnly: var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer(); group = radDocking.GeneratedItemsFactory.CreatePaneGroup(); foSplitContainer.Items.Add(group); group.Items.Add(pane); radDocking.Items.Add(foSplitContainer); pane.MakeFloatingOnly(); return; case DetectiveDockPosition.DockedTop: default: return; } } base.AddPane(radDocking, pane); }
bool CanUserClose(RadPane pane) { bool canUserClose; try { var hasValue = _canUserCloseDictionary.TryGetValue(RadDocking.GetSerializationTag(pane), out canUserClose); return(!hasValue || canUserClose); } catch { return(true); } }
void IFlyoutBehavior.OnPaneMouseLeftButtonDown(IFlyoutHost host, RadPane targetPane) { if (host.CurrentState != FlyoutState.Opened) { host.StartOpenAnimation(); } else { host.StartCloseAnimation(); } }
private void ButtonFloating_Click(object sender, RoutedEventArgs e) { var splitContainer = new RadSplitContainer(); var paneGroup = new RadPaneGroup(); var pane = new RadPane { Header = "Floating pane" }; RadDocking.SetFloatingLocation(pane, new Point(100, 100)); paneGroup.Items.Add(pane); splitContainer.Items.Add(paneGroup); dock.Items.Add(splitContainer); pane.MakeFloatingDockable(); }
private void AddSubjectListPane() { frmSecuritySubjectSelect = new frmSecuritySubjectSelect(); RadPane pane = new RadPane(); pane.Header = "لیست موضوع"; pane.CanUserClose = false; pane.Content = frmSecuritySubjectSelect; pnlSubjectList.Items.Add(pane); frmSecuritySubjectSelect.SecuritySubjectSelected += FrmSecuritySubjectSelect_SecuritySubjectSelected; }
private void UnlockRadPane(RadPane pane) { // Quita la cabecera de los paneles pineados pane.PaneHeaderVisibility = Visibility.Visible; // Quita la cabecera de los panales del DocumentHost. No se podrá cambiar de pestañas //pane.Visibility = Visibility.Collapsed; //pane.CanUserClose = false; pane.CanUserPin = true; pane.CanFloat = true; pane.IsDockable = true; }
private void AddPaneButtonClick(object sender, RoutedEventArgs e) { RadPane radPane = new RadPane() { Title = "New sample RadPane" }; radPane.Content = new TextBox() { Text = "TextBox" }; RadPaneGroup radPaneGroup = new RadPaneGroup(); RadSplitContainer radSplitContainer = new RadSplitContainer() { InitialPosition = DockState.FloatingDockable }; RadDocking.SetFloatingLocation(radSplitContainer, new Point(400, 400)); RadDocking.SetFloatingSize(radSplitContainer, new Size(200, 100)); radPaneGroup.Items.Add(radPane); radSplitContainer.Items.Add(radPaneGroup); this.Docking.Items.Add(radSplitContainer); }
private void AddTab(Tab tab) { var newPane = new RadPane { Header = tab.Header, Content = tab.Content }; _tabs.Add(tab.Id, newPane); PaneGroup.Items.Add(newPane); State.SelectedTabId = tab.Id; }
private void AddButton_Click(object sender, RoutedEventArgs e) { var split = new RadSplitContainer(); var group = new RadPaneGroup(); var pane = new RadPane(); group.Items.Add(pane); split.Items.Add(group); split.InitialPosition = Telerik.Windows.Controls.Docking.DockState.DockedTop; RadDocking.SetIsAutoGenerated(group, true); RadDocking.SetIsAutoGenerated(split, true); this.docking.Items.Add(split); }
protected override Telerik.Windows.Controls.RadPane CreatePaneForItem(object item) { var viewModel = item as PaneViewModel; if (viewModel != null) { var pane = new RadPane(); pane.DataContext = item; pane.Header = viewModel.HeaderText; RadDocking.SetSerializationTag(pane, viewModel.SerializationTag); return pane; } return base.CreatePaneForItem(item); }
/// <summary> /// Determines if the Docking's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane /// </summary> private bool CanDock(RadPane paneToDock, DockPosition position) { PaneType paneToDockType = GetPaneType(paneToDock); switch (paneToDockType) { case PaneType.Green: return true; case PaneType.Blue: return true; case PaneType.Default: return true; } return false; }
private PaneType GetPaneType(RadPane pane) { var content = pane.Content as Grid; if (content.Background.Equals(this.Resources["GreenBrush"])) { return PaneType.Green; } else if (content.Background.Equals(this.Resources["BlueBrush"])) { return PaneType.Blue; } else { return PaneType.Default; } }
private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position) { PaneType paneToDockType = GetPaneType(paneToDock); PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup); switch (paneToDockType) { case PaneType.Green: switch (paneInTargetGroupType) { case PaneType.Green: return true; case PaneType.OceanBlue: return position != DockPosition.Top && position != DockPosition.Bottom; case PaneType.Purple: return position != DockPosition.Top && position != DockPosition.Bottom; } break; case PaneType.OceanBlue: switch (paneInTargetGroupType) { case PaneType.Green: return position != DockPosition.Left && position != DockPosition.Right; case PaneType.OceanBlue: return true; case PaneType.Purple: return position != DockPosition.Left && position != DockPosition.Right; } break; case PaneType.Purple: switch (paneInTargetGroupType) { case PaneType.Green: return position != DockPosition.Center; case PaneType.OceanBlue: return position != DockPosition.Center; case PaneType.Purple: return true; } break; } return false; }
private PaneType GetPaneType(RadPane pane) { Grid c = pane.Content as Grid; if (c != null) { if (c.Background.Equals(this.Resources["GreenBrush"])) { return PaneType.Green; } else { return PaneType.Purple; } } return PaneType.Purple; }
/// <summary> /// Determines if the specific Pane's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane /// </summary> private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position) { PaneType paneToDockType = GetPaneType(paneToDock); PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup); switch (paneToDockType) { case PaneType.Green: switch (paneInTargetGroupType) { case PaneType.Green: return true; case PaneType.Blue: return false; case PaneType.Default: return false; } break; case PaneType.Blue: switch (paneInTargetGroupType) { case PaneType.Green: return false; case PaneType.Blue: return true; case PaneType.Default: return false; } break; case PaneType.Default: switch (paneInTargetGroupType) { case PaneType.Green: return false; case PaneType.Blue: return false; case PaneType.Default: return true; } break; } return false; }
private void RadContextMenuItemClick1(object sender, Telerik.Windows.RadRoutedEventArgs e) { var pane = (e.OriginalSource as RadMenuItem).Header as RadPane; if (Convert.ToString(pane.Header) == "Add Pane") { RadPane newPane = new RadPane() { Header = "New Pane" }; this.PaneGroup1.AddItem(newPane, Telerik.Windows.Controls.Docking.DockPosition.Center); } else { string newHeader = pane.Header.ToString().Replace("Show ", ""); pane.Header = newHeader; pane.IsHidden = false; var contextMenu = sender as RadContextMenu; ObservableCollection<RadPane> newItemsSource = contextMenu.ItemsSource as ObservableCollection<RadPane>; newItemsSource.Remove(pane); contextMenu.ItemsSource = newItemsSource; } }
private static void AddPaneForViewModel(RadDocking dock, WindowViewModel model, Size? floatingSize, Point? floatingLocation) { var pane = new RadPane { DataContext = model }; pane.SetBinding(RadPane.IsHiddenProperty, new Binding("IsHidden") { Mode = BindingMode.TwoWay }); pane.SetBinding(RadPane.HeaderProperty, new Binding("Header")); var group = new RadPaneGroup { Items = { pane } }; var splitContainer = new RadSplitContainer { Items = { group } }; splitContainer.InitialPosition = DockState.FloatingOnly; if (floatingSize.HasValue) { RadDocking.SetFloatingSize(splitContainer, floatingSize.Value); } if (floatingLocation.HasValue) { RadDocking.SetFloatingLocation(splitContainer, floatingLocation.Value); } dock.Items.Add(splitContainer); }
private PaneType GetPaneType(RadPane pane) { Panel c = pane.Content as Panel; if (c != null) { if (c.Background.Equals(this.Resources["GreenBrush"])) { return PaneType.Green; } else if (c.Background.Equals(this.Resources["OceanBlueBrush"])) { return PaneType.OceanBlue; } else { return PaneType.Purple; } } return PaneType.Purple; }
private void rtvSolution_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var vm = rtvSolution.SelectedItem as ViewModel.PrjTreeItemVM; if (vm == null) return; if (vm.Entity!=null && vm.Entity is ErlangEditor.Core.Entity.FileEntity) { try { var entity = vm.Entity as ErlangEditor.Core.Entity.FileEntity; if (App.MainViewModel.OpenedFiles.Any(i => i.FileName == entity.Name)) { rpContent.SelectedItem = App.MainViewModel.OpenedFiles.First(i => i.FileName == entity.Name).Pane; return; } var editor = new TextEditor(); var rp = new RadPane(); var fileVM = new ViewModel.FileVM() { FileName = entity.Name, Pane = rp, Editor = editor, FileEntity = entity, ItemVM = vm }; editor.Text = ErlangEditor.Core.FileUtil.LoadFile(entity); editor.TextChanged += (a, b) => { fileVM.Changed = true; }; editor.BorderBrush = new SolidColorBrush(Colors.White); editor.FontSize = 16; editor.ShowLineNumbers = true; editor.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance.GetDefinition("Erl"); editor.TextArea.TextEntering += textEditor_TextArea_TextEntering; editor.TextArea.TextEntered += textEditor_TextArea_TextEntered; editor.FontSize = 12; rp.Content = editor; rp.Tag = fileVM; rp.Unloaded += (a, b) => { Debug.WriteLine(string.Format("unloaded,{0}", a)); var panel = a as RadPane; App.MainViewModel.OpenedFiles.Remove(panel.Tag as FileVM); }; rp.Loaded += (a, b) => { Debug.WriteLine(string.Format("loaded,{0}", a)); var panel = a as RadPane; var fvm = panel.Tag as FileVM; if (!App.MainViewModel.OpenedFiles.Contains(fvm)) App.MainViewModel.OpenedFiles.Add(fvm); }; rpContent.Items.Add(rp); var b1 = new Binding("FileName") { Source = fileVM, Mode = BindingMode.OneWay }; var b2 = new Binding("Changed") { Source = fileVM, Mode = BindingMode.OneWay }; var mb = new MultiBinding() { Mode = BindingMode.OneWay }; mb.Bindings.Add(b1); mb.Bindings.Add(b2); mb.Converter = new ValueConverter.FileTabTextVC(); rp.SetBinding(RadPane.HeaderProperty, mb); App.MainViewModel.OpenedFiles.Add(fileVM); } catch (Exception ecp) { App.Navigation.ShowMessageBox(ecp.Message, "出错"); } } }
private void AddPane(int tag, string tabTitle, object organoControl) { action = tag; RadPane existingPane = this.GetExistingPane(tag); if (existingPane == null) { RadPane pane = new RadPane(); pane.Tag = tag; pane.Header = tabTitle; pane.Content = organoControl; PanelCentral.Items.Add(pane); Docking.ActivePane = pane; } else { existingPane.IsHidden = false; Docking.ActivePane = existingPane; } }
protected override void RemovePane(RadPane pane) { base.RemovePane(pane); }
private bool CanDock(RadPane paneToDock, DockPosition position) { PaneType paneToDockType = GetPaneType(paneToDock); switch (paneToDockType) { case PaneType.Green: return position != DockPosition.Left; case PaneType.OceanBlue: return false; case PaneType.Purple: return true; } return false; }
void IFlyoutBehavior.OnMouseEnter(IFlyoutHost host, RadPane targetPane) { }