protected override void ParseMetadata() { Opacity = double.Parse(XmlNode.Attribute("Opacity")?.Value ?? "1.0"); var transformString = XmlNode.Attribute("RenderTransform")?.Value; //var clipString = XmlNode.Attribute("Clip")?.Value; //var opacityMaskString = XmlNode.Attribute("OpacityMask")?.Value; foreach (var xElement in XmlNode.Elements()) { switch (xElement.Name.LocalName) { case "Canvas.Resources": case "Canvas.Clip": case "Canvas.OpacityMask": break; case "Canvas.RenderTransform": transformString = xElement.Elements().FirstOrDefault()?.Attribute("Matrix")?.Value; break; } } RenderTransform = transformString == null ? Matrix.Identity : Matrix.Parse(transformString); foreach (var xElement in XmlNode.Elements()) { switch (xElement.Name.LocalName) { case "Path": break; case "Glyphs": var glyphs = Glyphs.Parse(Page, xElement, this); var span = glyphs.GetContent(); if (span != null) { _spans.Add(span); } break; case "Canvas": var canvas = Canvas.Parse(Page, xElement, this); _spans.AddRange(canvas.GetContent()); break; } } }
protected void ParseMetadata() { foreach (var element in XmlNode.Elements()) { switch (element.Name.LocalName) { case "Canvas": var canvas = Canvas.Parse(this, element, null); _spans.AddRange(canvas.GetContent()); break; case "Glyphs": var glyphs = Glyphs.Parse(this, element, null); var span = glyphs.GetContent(); if (span != null) { _spans.Add(span); } break; } } }