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); } }
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); } }
public JsSvgTextElement(ISvgTextElement baseObject, ISvgScriptEngine engine) : base(baseObject, engine) { }