public override void WriteXml(XmlWriter writer) { if (this._id != null) { writer.WriteAttributeString("Id", this._id); } if (this._previousContainer != null) { ILayoutPaneSerializable layoutPaneSerializable = this._previousContainer as ILayoutPaneSerializable; if (layoutPaneSerializable != null) { writer.WriteAttributeString("PreviousContainerId", layoutPaneSerializable.Id); } } base.WriteXml(writer); }
protected virtual void FixupLayout(LayoutRoot layout) { int i; foreach (ILayoutPreviousContainer layoutPreviousContainer in from lc in layout.Descendents().OfType <ILayoutPreviousContainer>() where lc.PreviousContainerId != null select lc) { ILayoutPaneSerializable layoutPaneSerializable = layout.Descendents().OfType <ILayoutPaneSerializable>().FirstOrDefault <ILayoutPaneSerializable>((ILayoutPaneSerializable lps) => lps.Id == layoutPreviousContainer.PreviousContainerId); if (layoutPaneSerializable == null) { throw new ArgumentException(string.Format("Unable to find a pane with id ='{0}'", layoutPreviousContainer.PreviousContainerId)); } layoutPreviousContainer.PreviousContainer = layoutPaneSerializable as ILayoutContainer; } LayoutAnchorable[] array = ( from lc in layout.Descendents().OfType <LayoutAnchorable>() where lc.Content == null select lc).ToArray <LayoutAnchorable>(); for (i = 0; i < (int)array.Length; i++) { LayoutAnchorable content = array[i]; LayoutAnchorable layoutAnchorable = null; if (content.ContentId != null) { layoutAnchorable = this._previousAnchorables.FirstOrDefault <LayoutAnchorable>((LayoutAnchorable a) => a.ContentId == content.ContentId); } if (this.LayoutSerializationCallback != null) { LayoutSerializationCallbackEventArgs layoutSerializationCallbackEventArg = new LayoutSerializationCallbackEventArgs(content, (layoutAnchorable != null ? layoutAnchorable.Content : null)); this.LayoutSerializationCallback(this, layoutSerializationCallbackEventArg); if (layoutSerializationCallbackEventArg.Cancel) { content.Close(); } else if (layoutSerializationCallbackEventArg.Content != null) { content.Content = layoutSerializationCallbackEventArg.Content; } else if (layoutSerializationCallbackEventArg.Model.Content != null) { content.Hide(false); } } else if (layoutAnchorable != null) { content.Content = layoutAnchorable.Content; content.IconSource = layoutAnchorable.IconSource; } else { content.Hide(false); } } LayoutDocument[] layoutDocumentArray = ( from lc in layout.Descendents().OfType <LayoutDocument>() where lc.Content == null select lc).ToArray <LayoutDocument>(); for (i = 0; i < (int)layoutDocumentArray.Length; i++) { LayoutDocument layoutDocument = layoutDocumentArray[i]; LayoutDocument layoutDocument1 = null; if (layoutDocument.ContentId != null) { layoutDocument1 = this._previousDocuments.FirstOrDefault <LayoutDocument>((LayoutDocument a) => a.ContentId == layoutDocument.ContentId); } if (this.LayoutSerializationCallback != null) { LayoutSerializationCallbackEventArgs layoutSerializationCallbackEventArg1 = new LayoutSerializationCallbackEventArgs(layoutDocument, (layoutDocument1 != null ? layoutDocument1.Content : null)); this.LayoutSerializationCallback(this, layoutSerializationCallbackEventArg1); if (layoutSerializationCallbackEventArg1.Cancel) { layoutDocument.Close(); } else if (layoutSerializationCallbackEventArg1.Content != null) { layoutDocument.Content = layoutSerializationCallbackEventArg1.Content; } else if (layoutSerializationCallbackEventArg1.Model.Content != null) { layoutDocument.Close(); } } else if (layoutDocument1 != null) { layoutDocument.Content = layoutDocument1.Content; } else { layoutDocument.Close(); } } layout.CollectGarbage(); }
public virtual void WriteXml(XmlWriter writer) { bool isSelected; double floatingLeft; if (!string.IsNullOrWhiteSpace(this.Title)) { writer.WriteAttributeString("Title", this.Title); } if (this.IsSelected) { isSelected = this.IsSelected; writer.WriteAttributeString("IsSelected", isSelected.ToString()); } if (this.IsLastFocusedDocument) { isSelected = this.IsLastFocusedDocument; writer.WriteAttributeString("IsLastFocusedDocument", isSelected.ToString()); } if (!string.IsNullOrWhiteSpace(this.ContentId)) { writer.WriteAttributeString("ContentId", this.ContentId); } if (this.ToolTip != null && this.ToolTip is string && !string.IsNullOrWhiteSpace((string)this.ToolTip)) { writer.WriteAttributeString("ToolTip", (string)this.ToolTip); } if (this.FloatingLeft != 0) { floatingLeft = this.FloatingLeft; writer.WriteAttributeString("FloatingLeft", floatingLeft.ToString(CultureInfo.InvariantCulture)); } if (this.FloatingTop != 0) { floatingLeft = this.FloatingTop; writer.WriteAttributeString("FloatingTop", floatingLeft.ToString(CultureInfo.InvariantCulture)); } if (this.FloatingWidth != 0) { floatingLeft = this.FloatingWidth; writer.WriteAttributeString("FloatingWidth", floatingLeft.ToString(CultureInfo.InvariantCulture)); } if (this.FloatingHeight != 0) { floatingLeft = this.FloatingHeight; writer.WriteAttributeString("FloatingHeight", floatingLeft.ToString(CultureInfo.InvariantCulture)); } if (this.IsMaximized) { isSelected = this.IsMaximized; writer.WriteAttributeString("IsMaximized", isSelected.ToString()); } if (!this.CanClose) { isSelected = this.CanClose; writer.WriteAttributeString("CanClose", isSelected.ToString()); } if (!this.CanFloat) { isSelected = this.CanFloat; writer.WriteAttributeString("CanFloat", isSelected.ToString()); } if (this.LastActivationTimeStamp.HasValue) { DateTime value = this.LastActivationTimeStamp.Value; writer.WriteAttributeString("LastActivationTimeStamp", value.ToString(CultureInfo.InvariantCulture)); } if (this._previousContainer != null) { ILayoutPaneSerializable layoutPaneSerializable = this._previousContainer as ILayoutPaneSerializable; if (layoutPaneSerializable != null) { writer.WriteAttributeString("PreviousContainerId", layoutPaneSerializable.Id); writer.WriteAttributeString("PreviousContainerIndex", this._previousContainerIndex.ToString()); } } }