static object OnCoerceValueContentProperty(DependencyObject d, object baseValue) { DockableFloatingWindow fl = ((DockableFloatingWindow)d); if (fl.Content != null) { throw new InvalidOperationException("Content on floating windows can't be set more than one time."); } if (!(baseValue is DockableContent) && !(baseValue is DockablePane)) { throw new InvalidOperationException("Content must be of type DockableContent or DockablePane"); } FloatingDockablePane paneToReturn = null; if (baseValue is DockableContent) { paneToReturn = new FloatingDockablePane(fl, baseValue as DockableContent); } else if (baseValue is DockablePane) { paneToReturn = new FloatingDockablePane(fl, baseValue as DockablePane); } return(paneToReturn); }
public DocumentFloatingWindow(DockingManager manager, DocumentContent content) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size Width = content.ContainerPane.ActualWidth; Height = content.ContainerPane.ActualHeight; //save current content position in container pane _previousPane = content.ContainerPane; _arrayIndexPreviousPane = _previousPane.Items.IndexOf(content); pane.SetValue(ResizingPanel.ResizeWidthProperty, _previousPane.GetValue(ResizingPanel.ResizeWidthProperty)); pane.SetValue(ResizingPanel.ResizeHeightProperty, _previousPane.GetValue(ResizingPanel.ResizeHeightProperty)); //remove content from container pane content.ContainerPane.RemoveContent(_arrayIndexPreviousPane); //add content to my temporary pane pane.Items.Add(content); //let templates access this pane HostedPane = pane; if (IsDocumentFloatingAllowed) { AllowsTransparency = false; WindowStyle = WindowStyle.ToolWindow; NotifyPropertyChanged("IsDocumentFloatingAllowed"); } }
public DockableFloatingWindow(DockingManager manager, DockableContent content) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size Width = content.ContainerPane.ActualWidth; Height = content.ContainerPane.ActualHeight; //save current content position in container pane _previousPane = content.ContainerPane; _arrayIndexPreviousPane = _previousPane.Items.IndexOf(content); pane.SetValue(ResizingPanel.ResizeWidthProperty, _previousPane.GetValue(ResizingPanel.ResizeWidthProperty)); pane.SetValue(ResizingPanel.ResizeHeightProperty, _previousPane.GetValue(ResizingPanel.ResizeHeightProperty)); //remove content from container pane content.ContainerPane.RemoveContent(_arrayIndexPreviousPane); //add content to my temporary pane pane.Items.Add(content); //let templates access this pane HostedPane = pane; //Change state on contents IsDockableWindow = true; }
public DockableFloatingWindow(DockingManager manager, DockablePane dockablePane) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size Width = dockablePane.ActualWidth; Height = dockablePane.ActualHeight; //save current content position in container pane _previousPane = dockablePane; _arrayIndexPreviousPane = -1; pane.SetValue(ResizingPanel.ResizeWidthProperty, _previousPane.GetValue(ResizingPanel.ResizeWidthProperty)); pane.SetValue(ResizingPanel.ResizeHeightProperty, _previousPane.GetValue(ResizingPanel.ResizeHeightProperty)); int selectedIndex = _previousPane.SelectedIndex; //remove contents from container pane and insert in hosted pane while (_previousPane.Items.Count > 0) { ManagedContent content = _previousPane.RemoveContent(0); //add content to my temporary pane pane.Items.Add(content); } //let templates access this pane HostedPane = pane; HostedPane.SelectedIndex = selectedIndex; //Change state on contents IsDockableWindow = true; }
public DockableFloatingWindow(DockingManager manager, DockablePane dockablePane) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size ManagedContent selectedContent = dockablePane.SelectedItem as ManagedContent; if (selectedContent != null && selectedContent.FloatingWindowSize.IsEmpty) { selectedContent.FloatingWindowSize = new Size(dockablePane.ActualWidth, dockablePane.ActualHeight); } if (selectedContent != null) { Width = selectedContent.FloatingWindowSize.Width; Height = selectedContent.FloatingWindowSize.Height; this.ResizeMode = selectedContent.FloatingResizeMode; } else { Width = dockablePane.ActualWidth; Height = dockablePane.ActualHeight; } //transfer the style from the original dockablepane pane.Style = dockablePane.Style; //Width = dockablePane.ActualWidth; //Height = dockablePane.ActualHeight; ////save current content position in container pane //pane.SetValue(ResizingPanel.ResizeWidthProperty, dockablePane.GetValue(ResizingPanel.ResizeWidthProperty)); //pane.SetValue(ResizingPanel.ResizeHeightProperty, dockablePane.GetValue(ResizingPanel.ResizeHeightProperty)); int selectedIndex = dockablePane.SelectedIndex; //remove contents from container pane and insert in hosted pane while (dockablePane.Items.Count > 0) { ManagedContent content = dockablePane.RemoveContent(0); //add content to my temporary pane pane.Items.Add(content); } //let templates access this pane HostedPane = pane; HostedPane.SelectedIndex = selectedIndex; //Change state on contents IsDockableWindow = true; }
public DockableFloatingWindow(DockingManager manager, DockableContent content) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size //Width = content.ContainerPane.ActualWidth; //Height = content.ContainerPane.ActualHeight; if (content.FloatingWindowSize.IsEmpty) { content.FloatingWindowSize = new Size(content.ContainerPane.ActualWidth, content.ContainerPane.ActualHeight); } Width = content.FloatingWindowSize.Width; Height = content.FloatingWindowSize.Height; //save current content position in container pane _previousPane = content.ContainerPane; _arrayIndexPreviousPane = _previousPane.Items.IndexOf(content); if (pane.GetType().IsSubclassOf(content.ContainerPane.Style.TargetType)) { pane.Style = content.ContainerPane.Style; } //remove content from container pane content.ContainerPane.RemoveContent(_arrayIndexPreviousPane); //add content to my temporary pane pane.Items.Add(content); //let templates access this pane HostedPane = pane; //Change state on contents IsDockableWindow = true; DocumentPane originalDocumentPane = _previousPane as DocumentPane; if (originalDocumentPane != null) { originalDocumentPane.CheckContentsEmpty(); } }
public DockableFloatingWindow(DockingManager manager, DockableContent content) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size //Width = content.ContainerPane.ActualWidth; //Height = content.ContainerPane.ActualHeight; if (content.FloatingWindowSize.IsEmpty) content.FloatingWindowSize = new Size(content.ContainerPane.ActualWidth, content.ContainerPane.ActualHeight); Width = content.FloatingWindowSize.Width; Height = content.FloatingWindowSize.Height; //save current content position in container pane _previousPane = content.ContainerPane; _arrayIndexPreviousPane = _previousPane.Items.IndexOf(content); pane.Style = content.ContainerPane.Style; //remove content from container pane content.ContainerPane.RemoveContent(_arrayIndexPreviousPane); //add content to my temporary pane pane.Items.Add(content); //let templates access this pane HostedPane = pane; //Change state on contents IsDockableWindow = true; DocumentPane originalDocumentPane = _previousPane as DocumentPane; if (originalDocumentPane != null) originalDocumentPane.CheckContentsEmpty(); }
/// <summary> /// Close this content without notifications /// </summary> internal void InternalClose() { DocumentPane parentPane = ContainerPane as DocumentPane; DockingManager manager = Manager; if (manager != null) { if (manager.ActiveContent == this) { manager.ActiveContent = null; } if (manager.ActiveDocument == this) { manager.ActiveDocument = null; } } if (parentPane != null) { parentPane.Items.Remove(this); parentPane.CheckContentsEmpty(); } else { FloatingDockablePane floatingParentPane = ContainerPane as FloatingDockablePane; if (floatingParentPane != null) { floatingParentPane.RemoveContent(0); if (floatingParentPane.FloatingWindow != null && !floatingParentPane.FloatingWindow.IsClosing) { floatingParentPane.FloatingWindow.Close(); } } } }
static object OnCoerceValueContentProperty(DependencyObject d, object baseValue) { DockableFloatingWindow fl = ((DockableFloatingWindow)d); if (fl.Content != null) { throw new InvalidOperationException("Content on floating windows can't be set more than one time."); } if (!(baseValue is DockableContent) && !(baseValue is DockablePane)) { throw new InvalidOperationException("Content must be of type DockableContent or DockablePane"); } FloatingDockablePane paneToReturn = null; if (baseValue is DockableContent) paneToReturn = new FloatingDockablePane(fl, baseValue as DockableContent); else if (baseValue is DockablePane) paneToReturn = new FloatingDockablePane(fl, baseValue as DockablePane); return paneToReturn; }
public DockableFloatingWindow(DockingManager manager, DockablePane dockablePane) : this(manager) { //create a new temporary pane FloatingDockablePane pane = new FloatingDockablePane(this); //setup window size ManagedContent selectedContent = dockablePane.SelectedItem as ManagedContent; if (selectedContent != null && selectedContent.FloatingWindowSize.IsEmpty) selectedContent.FloatingWindowSize = new Size(dockablePane.ActualWidth, dockablePane.ActualHeight); if (selectedContent != null) { Width = selectedContent.FloatingWindowSize.Width; Height = selectedContent.FloatingWindowSize.Height; this.ResizeMode = selectedContent.FloatingResizeMode; } else { Width = dockablePane.ActualWidth; Height = dockablePane.ActualHeight; } //transfer the style from the original dockablepane pane.Style = dockablePane.Style; //Width = dockablePane.ActualWidth; //Height = dockablePane.ActualHeight; ////save current content position in container pane //pane.SetValue(ResizingPanel.ResizeWidthProperty, dockablePane.GetValue(ResizingPanel.ResizeWidthProperty)); //pane.SetValue(ResizingPanel.ResizeHeightProperty, dockablePane.GetValue(ResizingPanel.ResizeHeightProperty)); int selectedIndex = dockablePane.SelectedIndex; //remove contents from container pane and insert in hosted pane while (dockablePane.Items.Count > 0) { ManagedContent content = dockablePane.RemoveContent(0); //add content to my temporary pane pane.Items.Add(content); } //let templates access this pane HostedPane = pane; HostedPane.SelectedIndex = selectedIndex; //Change state on contents IsDockableWindow = true; }