public static VgVisualElement CreateVgVisualElemFromSvgContent(string svgContent) { VgDocBuilder docBuidler = new VgDocBuilder(); SvgParser parser = new SvgParser(docBuidler); WebLexer.TextSnapshot textSnapshot = new WebLexer.TextSnapshot(svgContent); parser.ParseDocument(textSnapshot);//start document parsing //TODO: review this step again VgVisualDocBuilder builder = new VgVisualDocBuilder(); VgDocument svgDoc = docBuidler.ResultDocument; //optional svgDoc.OriginalContent = svgContent; //------------------------------------------------------------- VgVisualElement vgVisRootElem = builder.CreateVgVisualDoc(svgDoc, null).VgRootElem; // vgVisRootElem.OwnerDocument = svgDoc;//tmp return(vgVisRootElem); }
public CssBoxSvgRoot(Css.BoxSpec spec, IRootGraphics rootgfx, VgDocument svgdoc) : base(spec, rootgfx, Css.CssDisplay.Block) { //---------- _vgVisualDocHost = new PaintLab.Svg.VgVisualDocHost(); _vgVisualDocHost.SetImgRequestDelgate((ImageBinder reqImgBinder, PaintLab.Svg.VgVisualElement vgVisualE, object requestFrom) => { //TODO: implementation here }); _vgVisualDocHost.SetInvalidateDelegate(vgVisualElem => { vgVisualElem.ClearBitmapSnapshot(); vgVisualElem.InvalidateBounds(); this.InvalidateGraphics(); }); //---------- SetAsCustomCssBox(this); //create svg node this.SvgDoc = svgdoc; //convert svgElem to agg-based ChangeDisplayType(this, Css.CssDisplay.Block); }