/// <summary> /// Parses a Visual element. /// </summary> Visual ParseVisual() { bool isEmptyElement = this.reader.IsEmptyElement; Visual visual = new Visual(); while (MoveToNextAttribute()) { switch (this.reader.Name) { default: UnexpectedAttribute(this.reader.Name); break; } } if (!isEmptyElement) { MoveToNextElement(); while (this.reader.IsStartElement()) { XpsElement element = null; switch (this.reader.Name) { case "Canvas": element = ParseCanvas(); visual.Content.Add(element); element.Parent = visual; break; case "Path": element = ParsePath(); visual.Content.Add(element); element.Parent = visual; break; case "Glyphs": element = ParseGlyphs(); visual.Content.Add(element); element.Parent = visual; break; default: Debugger.Break(); break; } } } MoveToNextElement(); return visual; }
/// <summary> /// Writes a Visual to the content stream. /// </summary> internal void WriteVisual(Visual visual) // Is internal for VisualBrush { WriteSaveState("begin Visual", null); WriteElements(visual.Content); WriteRestoreState("end Visual", null); }