玻璃效果的实现

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //DrawGlassFace(new Rectangle(10, 10, 300, 50), new GlassColorCfg());

            Rectangle rec = new Rectangle(10, 10, 300, 50);
            GlassColorCfg cfg = new GlassColorCfg();
            using (Pen pen = new Pen(cfg.OutBorder))
            {
                e.Graphics.DrawRectangle(pen, rec);
            }
            using (Pen pen = new Pen(cfg.InBorder))
            {
                Rectangle rec1 = new Rectangle(rec.X + 1, rec.Y + 1, rec.Width - 2, rec.Height - 2);
                e.Graphics.DrawRectangle(pen, rec);
            }
             Rectangle rec2 = new Rectangle(rec.X + 2, rec.Y + 2, rec.Width - 4, rec.Height - 4);
             LinearGradientBrush brush = new LinearGradientBrush(rec2, cfg.Grad1Start, cfg.Grad1End, LinearGradientMode.Vertical);
             brush.SetSigmaBellShape(1f);
            e.Graphics.FillRectangle(brush, rec2);
            Rectangle rec3 = new Rectangle(rec.X + 2, rec.Y + rec.Height/2, rec.Width - 4, (rec.Height - 4)/2);
            LinearGradientBrush brush1 = new LinearGradientBrush(rec2, cfg.Grad2Start, cfg.Grad2End, LinearGradientMode.Vertical);
            brush1.SetSigmaBellShape(1f);
            e.Graphics.FillRectangle(brush1, rec3);
//             LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, Color.White, Color.Red, LinearGradientMode.Horizontal);
//             brush.SetSigmaBellShape(1f);
//             Graphics g = this.CreateGraphics();
//             g.FillRectangle(brush, 1, 1, 1000, 100);
        }
    }

    public class GlassColorCfg
    {
        public Color OutBorder = Color.Black;
        public Color InBorder = Color.FromArgb( 0xE1, 0xD0, 0xAA);
        public Color Grad1Start = Color.FromArgb(0xFF, 0xD1, 0xAE, 0x7A);
        public Color Grad1End = Color.FromArgb(0xFF, 0xB9, 0x88, 0x35);
        public Color Grad2Start = Color.FromArgb(0xFF, 0x97, 0x5F, 0x00);
        public Color Grad2End = Color.FromArgb(0xFF, 0xC6, 0xA4, 0x6A);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值