Esempio n. 1
0
        private void btExportToImage_Click(object sender, Janus.Windows.Ribbon.CommandEventArgs e)
        {
            using (var fs = new SaveFileDialog()
            {
                FileName = string.Format("{0}.png", Competition.Name), Filter = "png (*.png)|*.png"
            })
                if (fs.ShowDialog(this) == DialogResult.OK)
                {
                    Render render = new Render();

                    render.AddRenderer(typeof(GameShape), new GameShapeRenderer(this));

                    Rectangle renderRect = new Rectangle(new Point(0, 0), Size.Round(diagram.Model.Size));

                    //Get the bounds of the renderlist
                    if (Singleton.Instance.ClipExport)
                    {
                        renderRect = System.Drawing.Rectangle.Round(diagram.Model.Elements.GetBounds());
                        renderRect.Inflate(20, 20);

                        if (renderRect.X < 0)
                        {
                            renderRect.X = 0;
                        }
                        if (renderRect.Y < 0)
                        {
                            renderRect.Y = 0;
                        }
                    }

                    //Set the render rectangle
                    render.Zoom            = 100;
                    render.RenderRectangle = renderRect;
                    render.Layers          = diagram.Model.Layers;
                    render.Elements        = diagram.Model.Elements;

                    //Use a default paging
                    render.RenderDiagram(renderRect, new Paging());

                    using (var s = fs.OpenFile())
                    {
                        render.Bitmap.Save(s, System.Drawing.Imaging.ImageFormat.Png);
                    }
                }
        }