private void comboRenderType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listIcons.SelectedIndex == -1)
            {
                return;
            }
            if (SelectedIcon.renderer.Name == comboRenderType.Text)
            {
                return;
            }

            if (typeof(IRenderColorable).IsAssignableFrom(SelectedIcon.renderer.GetType()) &&
                typeof(IRenderColorable).IsAssignableFrom(RenderRegistry.GetRenderTypeFormName(comboRenderType.Text)))
            {
                Color fgColor = ((IRenderColorable)SelectedIcon.renderer).ForegroundColour;
                Color bgColor = ((IRenderColorable)SelectedIcon.renderer).BackgroundColour;

                SelectedIcon.ChangeRenderer(comboRenderType.Text);

                ((IRenderColorable)SelectedIcon.renderer).ForegroundColour = fgColor;
                ((IRenderColorable)SelectedIcon.renderer).BackgroundColour = bgColor;
            }
            else
            {
                if (MessageBox.Show("This will clear the renderer settings.\n\nAre you sure?",
                                    Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    SelectedIcon.ChangeRenderer(comboRenderType.Text);
                }
                else
                {
                    comboRenderType.Text = SelectedIcon.renderer.Name;
                }
            }

            SetRenderInfo();
        }
        protected RenderControllerBase(ILoader loader)
        {
            Loader = loader;
            RenderRegistry.Add("circle", CircleRender.Render);
            RenderRegistry.Add("ellipse", EllipseRender.Render);
            RenderRegistry.Add("line", LineRender.Render);
            RenderRegistry.Add("path", PathRender.Render);
            RenderRegistry.Add("polygon", PolygonRender.Render);
            RenderRegistry.Add("svg", SvgRender.Render);
            RenderRegistry.Add("use", UseRender.Render);
            RenderRegistry.Add("symbol", SymbolRender.Render);
            RenderRegistry.Add("g", GRender.Render);
            RenderRegistry.Add("text", TextRender.Render);
            RenderRegistry.Add("barcode", BarcodeRender.Render);
            RenderRegistry.Add("polyline", PolyLineRender.Render);
            RenderRegistry.Add("image", ImageRender.Render);
            RenderRegistry.Add("rect", RectangleRender.Render);
            RenderRegistry.Add("px-text", PxTextRender.Render);

            D2DFactory  = new D2D1.Factory(D2D1.FactoryType.SingleThreaded);
            WicFactory  = new WIC.ImagingFactory2();
            DwFactory   = new DW.Factory();
            FontManager = new FontManager(DwFactory);
        }