示例#1
0
        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;
                }
            }
        }
示例#2
0
        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;
                }
            }
        }