public void Visit(ISvgTextElement element)
        {
            Point position = GetCurrentTextPosition(element as SvgTextPositioningElement, new Point(0, 0));
            Size  spanSize;

            foreach (var child in element.ChildNodes)
            {
                Geometry geometry;
                Path     shape;
                spanSize = new Size(0, 0);
                SvgTSpanElement tspan;
                Dom.Text        simpleText;
                if (TryCast.Cast(child, out tspan))
                {
                    geometry = ConstructTextGeometry(tspan, tspan.InnerText, position, out spanSize);
                    shape    = WrapGeometry(geometry, tspan);
                    shape.IsHitTestVisible = false;
                    DisplayShape(shape, tspan);
                }
                else if (TryCast.Cast(child, out simpleText))
                {
                    geometry = ConstructTextGeometry(element as SvgTextBaseElement,
                                                     simpleText.InnerText, position, out spanSize);
                    shape = WrapGeometry(geometry, element);
                    shape.IsHitTestVisible = false;
                    DisplayShape(shape, element);
                }

                position.Offset(spanSize.Width, 0);
            }
        }
Exemple #2
0
        public void Visit(ISvgTextElement element)
        {
            Point position = GetCurrentTextPosition(element as SvgTextPositioningElement, new Point(0, 0));
            Size  spanSize;

            foreach (var child in element.ChildNodes)
            {
                Geometry geometry;
                System.Windows.Shapes.Path shape;
                spanSize = new Size(0, 0);
                switch (child)
                {
                case SvgTSpanElement tspan:
                    geometry = ConstructTextGeometry(tspan, tspan.InnerText, position, out spanSize);
                    shape    = WrapGeometry(geometry, tspan);
                    shape.IsHitTestVisible = false;
                    DisplayShape(shape, tspan);
                    break;

                case Dom.Text simpleText:
                    geometry = ConstructTextGeometry(element as SvgTextElement, simpleText.InnerText, position, out spanSize);
                    shape    = WrapGeometry(geometry, element);
                    shape.IsHitTestVisible = false;
                    DisplayShape(shape, element);
                    break;
                }
                position.Offset(spanSize.Width, 0);
            }
        }
Exemple #3
0
 public JsSvgTextElement(ISvgTextElement baseObject, ISvgScriptEngine engine)
     : base(baseObject, engine)
 {
 }