private FlowDocument CloneDocument(FlowDocument flowDocument) { MathDocument mathDocument = _serializer.Serialize(flowDocument); FlowDocument deserializedFlowDocument = _serializer.Deserialize(mathDocument); return(deserializedFlowDocument); }
private static void Serialize(IndexNotation indexNotation, MathDocument document, int offset) { var element = new IndexElement(); element.StartOffset = offset; if (!indexNotation.Main.IsEmpty()) { element.Main = new MathDocument(); Serialize(indexNotation.Main, element.Main); } if (!indexNotation.Upperscript.IsEmpty()) { element.Upperscript = new MathDocument(); Serialize(indexNotation.Upperscript, element.Upperscript); } if (!indexNotation.Underscript.IsEmpty()) { element.Underscript = new MathDocument(); Serialize(indexNotation.Underscript, element.Underscript); } document.MathElements.Add(element); }
public MathDocument Serialize(FlowDocument flowDocument) { var mathDocument = new MathDocument(); Serialize(flowDocument, mathDocument); return(mathDocument); }
private static void Serialize(InlineUIContainer container, MathDocument document) { if (container.Child is NotationBase) { Serialize((dynamic)container.Child, document, container.GetOffset()); } }
public FlowDocument Deserialize(MathDocument mathDocument) { var flowDocument = new FlowDocument(); Deserialize(mathDocument, flowDocument); return(flowDocument); }
private static void Deserialize(MathDocument mathDocument, MathBox mathBox) { if (mathDocument?.IsEmpty() ?? true) { return; } Deserialize(mathDocument, mathBox.Document); }
private static void Deserialize(MathDocument mathDocument, FlowDocument flowDocument) { DeserializeTextContent(mathDocument, flowDocument); foreach (var mathElement in mathDocument.MathElements) { Deserialize((dynamic)mathElement, flowDocument); } }
private static void Serialize(FlowDocument flowDocument, MathDocument mathDocument) { SerializeTextContent(flowDocument, mathDocument); var containers = flowDocument.FindChildren <InlineUIContainer>(1); foreach (var container in containers) { Serialize(container, mathDocument); } }
private void Save() { MathDocument document = mathBox.SaveDocument(); var dialog = new SaveFileDialog(document); dialog.ShowDialog(); documentLibrary.LoadDocuments(); }
private static void DeserializeTextContent(MathDocument document, FlowDocument destination) { if (document == null) { return; } var range = new TextRange(destination.ContentStart, destination.ContentEnd); using (var stream = GenerateStreamFromString(document.TextContent)) { range.Load(stream, DataFormats.Xaml); } }
private static void SerializeTextContent(FlowDocument flowDocument, MathDocument document) { var documentRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd); using (var memoryStream = new MemoryStream()) { documentRange.Save(memoryStream, DataFormats.Xaml); memoryStream.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(memoryStream)) { document.TextContent = reader.ReadToEnd(); } } }
private void LoadDocument(string path) { if (path == null) { return; } string serializedDocument = File.ReadAllText(path); var settings = new JsonSerializerSettings(); settings.TypeNameHandling = TypeNameHandling.All; MathDocument document = JsonConvert.DeserializeObject <MathDocument>(serializedDocument, settings); mathBox.LoadDocument(document); }
public FlowDocument Deserialize(MathDocument mathDocument) { return(new FlowDocument()); }
private static void Serialize(MathBox mathBox, MathDocument document) { Serialize(mathBox.Document, document); }