Exemplo n.º 1
0
        protected override void OnHandleCreated(EventArgs e)
        {
            base.OnHandleCreated(e);

            _savedSize = this.Size;

            _svgRenderer          = new GdiGraphicsRenderer();
            _svgRenderer.OnRender = new RenderEvent(this.OnRender);
            _svgWindow            = new SvgPictureBoxWindow(this, _svgRenderer);
        }
Exemplo n.º 2
0
        public TestDockPanel()
        {
            InitializeComponent();

            this.AutoScaleMode = AutoScaleMode.Dpi;
            this.DockAreas     = DockAreas.Document | DockAreas.Float;

            this.CloseButton = false;

            labelConverted.Font = new Font("Segoe UI", 18F, FontStyle.Regular, GraphicsUnit.World, 0);
            labelExpected.Font  = new Font("Segoe UI", 18F, FontStyle.Regular, GraphicsUnit.World, 0);

            _svgRenderer = new GdiGraphicsRenderer();
        }
Exemplo n.º 3
0
        public SvgPictureBox()
        {
            InitializeComponent();

            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.OptimizedDoubleBuffer, true);

            //scriptEngineByMimeType = new TypeDictionary();
            //SetMimeTypeEngineType("application/ecmascript", typeof(JScriptEngine));

            renderer          = new GdiGraphicsRenderer();
            renderer.OnRender = new RenderEvent(this.OnRender);
            window            = new SvgPictureBoxWindow(this, renderer);
        }
Exemplo n.º 4
0
 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();
         }
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                    components = null;
                }
            }

            if (_svgRenderer != null)
            {
                _svgRenderer.Dispose();
                _svgRenderer = null;
            }

            base.Dispose(disposing);
        }
Exemplo n.º 6
0
        /// <summary>
        /// The following code will load the SVGDOM, render to a emf, and
        /// place the EMF on the clipboard. Kt seems more complicated than it should
        /// see http://www.dotnet247.com/247reference/msgs/23/118514.aspx
        /// for why the straight forward solution does not work.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void miCopy_Click(object sender, EventArgs e)
        {
            if (svgUrlCombo.Text.Length > 0)
            {
                int width  = 500;
                int height = 500;

                // make SVG document with associated window so we can render it.
                SvgWindow           window   = new SvgPictureBoxWindow(width, height, null);
                GdiGraphicsRenderer renderer = new GdiGraphicsRenderer();
                renderer.Window = window;
                window.Renderer = renderer;
                window.Source   = svgUrlCombo.Text;

                // copy and paste code taken from
                // http://www.dotnet247.com/247reference/msgs/23/117611.aspx
                // putting a plain MetaFile on the clipboard does not work.
                // .Net's metafile format is not recognised by most programs.
                Graphics g   = CreateGraphics();
                IntPtr   hdc = g.GetHdc();
                Metafile m   = new Metafile(hdc, EmfType.EmfOnly);
                g.ReleaseHdc(hdc);
                g.Dispose();
                g = Graphics.FromImage(m);

                // draw the SVG here
                // NOTE: the graphics object is automatically Disposed by the
                // GdiRenderer.
                renderer.Graphics = g;
                renderer.Render(window.Document as SvgDocument);
                //window.Render();

                // put meta file on the clipboard.
                IntPtr hwnd = this.Handle;
                if (Win32.OpenClipboard(hwnd))
                {
                    Win32.EmptyClipboard();
                    IntPtr hemf = m.GetHenhmetafile();
                    Win32.SetClipboardData(14, hemf); //CF_ENHMETAFILE=14
                    Win32.CloseClipboard();
                }
            }
        }
Exemplo n.º 7
0
        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
            {
                using (var svgRenderer = new GdiGraphicsRenderer(pngImage.Width, pngImage.Height))
                {
                    var svgWindow = svgRenderer.Window;

                    svgWindow.Source = documentFilePath;
                    svgRenderer.Render(svgWindow.Document);

                    var svgImage = svgRenderer.RasterImage;

                    viewerConverted.Image  = svgImage;
                    viewerConverted.Width  = svgImage.Width + 10;
                    viewerConverted.Height = svgImage.Height + 10;
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.ToString());

                return(false);
            }

            return(true);
        }