public void DrawTo(IntPtr hdc) { if (!this.DesignMode) { if (window != null) { GdiGraphicsWrapper gw = GdiGraphicsWrapper.FromHdc(hdc, true); GdiGraphicsRenderer r = ((GdiGraphicsRenderer)window.Renderer); gw.Clear(r.BackColor); r.GraphicsWrapper = gw; window.Renderer.Render((SvgDocument)window.Document); r.GraphicsWrapper = null; gw.Dispose(); } } }
public bool LoadDocument(string documentFilePath, SvgTestInfo testInfo, object extraInfo) { this.UnloadDocument(); if (extraInfo == null) { return(false); } if (string.IsNullOrWhiteSpace(documentFilePath) || File.Exists(documentFilePath) == false) { return(false); } var pngFilePath = extraInfo.ToString(); if (string.IsNullOrWhiteSpace(pngFilePath) || File.Exists(pngFilePath) == false) { return(false); } Image pngImage = null; try { pngImage = Image.FromFile(pngFilePath); if (pngImage == null) { return(false); } viewerExpected.Image = pngImage; viewerExpected.Width = pngImage.Width + 10; viewerExpected.Height = pngImage.Height + 10; } catch (Exception ex) { Trace.TraceError(ex.ToString()); return(false); } try { _svgWindow = new SvgPictureBoxWindow(pngImage.Width, pngImage.Height, _svgRenderer); _svgWindow.Source = documentFilePath; var svgImage = new Bitmap(pngImage.Width, pngImage.Height); using (var graWrapper = GdiGraphicsWrapper.FromImage(svgImage, true)) { _svgRenderer.GraphicsWrapper = graWrapper; _svgRenderer.Render(_svgWindow.Document); _svgRenderer.GraphicsWrapper = null; } viewerConverted.Image = svgImage; viewerConverted.Width = svgImage.Width + 10; viewerConverted.Height = svgImage.Height + 10; } catch (Exception ex) { Trace.TraceError(ex.ToString()); return(false); } return(true); }