Example #1
0
        private void Init(PaintEventArgs e)
        {
            G  = e.Graphics;
            cn = new ContainerObjectDisposable();
            R1 = new Rectangle(1, 1, Width - 2, Height - 2);
            R2 = new Rectangle(2, 2, Width - 4, Height - 4);

            GP1 = Helper.RoundRect(R1, 11);
            cn.AddObject(GP1);
            GP2 = Helper.RoundRect(R2, 11);
            cn.AddObject(GP2);

            B1 = new SolidBrush(Color.FromArgb(40, 40, 40));
            cn.AddObject(B1);
            if (Checked)
            {
                B2   = new SolidBrush(Color.FromArgb(84, 135, 171));
                PGB1 = new PathGradientBrush(GP2)
                {
                    CenterColor    = Color.FromArgb(84, 135, 171),
                    SurroundColors = new Color[] { Color.FromArgb(113, 176, 200) },
                    FocusScales    = new PointF(0.85f, 0.65f)
                };
            }
            else
            {
                B2   = new SolidBrush(Color.FromArgb(29, 29, 29));
                PGB1 = new PathGradientBrush(GP2)
                {
                    CenterColor    = Color.FromArgb(29, 29, 29),
                    SurroundColors = new Color[] { Color.FromArgb(39, 39, 39) },
                    FocusScales    = new PointF(0.85f, 0.65f)
                };
            }
            cn.AddObjectRange(new Brush[] {
                B2,
                PGB1
            });
            B3 = new SolidBrush(Color.FromArgb(107, 107, 107));
            cn.AddObject(B3);

            CheckSize = new Size(22, R2.Height);
            R3        = new Rectangle(Width - 2 - 22, 2, CheckSize.Width, CheckSize.Height);
            GP3       = Helper.RoundRect(R3, 11);
            R4        = new Rectangle(R3.X + 1, R3.Y + 1, R3.Width - 2, R3.Height - 2);
            GP4       = Helper.RoundRect(R4, 11);

            R5  = new Rectangle(0, 2, CheckSize.Width, CheckSize.Height);
            GP5 = Helper.RoundRect(R5, 11);
            R6  = new Rectangle(R5.X + 1, R5.Y + 1, R5.Width - 2, R5.Height - 2);
            GP6 = Helper.RoundRect(R6, 11);
            cn.AddObjectRange(new GraphicsPath[] {
                GP3,
                GP4,
                GP5,
                GP6
            });
            if (Hover)
            {
                LGB1 = new LinearGradientBrush(R3, Color.FromArgb(86, 86, 86), Color.FromArgb(42, 42, 42), LinearGradientMode.Vertical);
                LGB2 = new LinearGradientBrush(new Rectangle(R4.X - 1, R4.Y - 1, R4.Width + 2, R4.Height + 2), Color.FromArgb(147, 147, 147), Color.FromArgb(68, 68, 68), LinearGradientMode.Vertical);
                P1   = new Pen(LGB2);

                LGB3 = new LinearGradientBrush(R5, Color.FromArgb(86, 86, 86), Color.FromArgb(42, 42, 42), LinearGradientMode.Vertical);
                LGB4 = new LinearGradientBrush(new Rectangle(R6.X - 1, R6.Y - 1, R6.Width + 2, R6.Height + 2), Color.FromArgb(147, 147, 147), Color.FromArgb(68, 68, 68), LinearGradientMode.Vertical);
                P2   = new Pen(LGB4);
            }
            else
            {
                LGB1 = new LinearGradientBrush(R3, Color.FromArgb(59, 59, 59), Color.FromArgb(29, 29, 29), LinearGradientMode.Vertical);
                LGB2 = new LinearGradientBrush(new Rectangle(R4.X - 1, R4.Y - 1, R4.Width + 2, R4.Height + 2), Color.FromArgb(101, 101, 101), Color.FromArgb(42, 42, 42), LinearGradientMode.Vertical);
                P1   = new Pen(LGB2);

                LGB3 = new LinearGradientBrush(R5, Color.FromArgb(59, 59, 59), Color.FromArgb(29, 29, 29), LinearGradientMode.Vertical);
                LGB4 = new LinearGradientBrush(new Rectangle(R6.X - 1, R6.Y - 1, R6.Width + 2, R6.Height + 2), Color.FromArgb(101, 101, 101), Color.FromArgb(42, 42, 42), LinearGradientMode.Vertical);
                P2   = new Pen(LGB4);
            }
            cn.AddObjectRange(new Brush[] {
                LGB1,
                LGB2,
                LGB3,
                LGB4,
                //P1,
                //P2
            });

            cn.AddObjectRange(new Pen[] {
                P1,
                P2
            });
        }