GDI+学习记录(13)-线性渐变画刷 LinearGrandientBrush

      线性渐变画刷的基本使用

    Demo:

 

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.Clear(Color.White);

            Pen myPen = new Pen(Color.Black,3);

            Rectangle rect1 = new Rectangle(10,10,200,100);
            //使用2个点定义渐变区域
            LinearGradientBrush lBrush = new LinearGradientBrush(
                new Point(10, 10),
                new Point(10, 50),
                Color.Red,      //起点颜色
                Color.Blue);    //终点颜色
            
            //填充矩形区域并绘制其边框
            g.FillRectangle(lBrush,rect1);
            g.DrawRectangle(myPen,rect1);


            Rectangle rect2 = new Rectangle(250,10,200,100);
            //使用矩形来定义渐变区域
            LinearGradientBrush lBrush2 = new LinearGradientBrush(
                rect2,
                Color.Pink,
                Color.Green,
                LinearGradientMode.BackwardDiagonal);
            //填充矩形区域并绘制其边框
            g.FillRectangle(lBrush2,rect2);
            g.DrawRectangle(myPen,rect2);

            
            Rectangle rect3 = new Rectangle(500,10,200,100);
            //使用指定的偏转角度来构建画刷
            LinearGradientBrush lBrush3 = new LinearGradientBrush(
                rect3,
                Color.LightYellow,
                Color.Red,
                60.0f);
            g.FillRectangle(lBrush3,rect3);
            g.DrawRectangle(myPen,rect3);

            myPen.Dispose();
            lBrush.Dispose();
            lBrush2.Dispose();
            lBrush3.Dispose();
        }

 
在上Demo中使用了线性渐变画刷的渐变模式,在GDI+ 的 LinearGradientMode 枚举中定义了四种渐变模式,如下表:

 

渐变画刷的四种颜色渐变模式:

/渐变画刷的四种颜色渐变模式
            Graphics g = e.Graphics;
            g.Clear(Color.White);

            //定义矩形
            Rectangle rect1 = new Rectangle(10, 10, 200, 100);
            Rectangle rect2 = new Rectangle(250, 10, 200, 100);
            Rectangle rect3 = new Rectangle(10, 200, 200, 100);
            Rectangle rect4 = new Rectangle(250, 200, 200, 100);

            Pen myPen = new Pen(Color.Black, 3);

            //Horizontal
            LinearGradientBrush lBrush = new LinearGradientBrush(
                rect1,
                Color.Yellow,
                Color.Green,
                LinearGradientMode.Horizontal);
            g.FillRectangle(lBrush, rect1);

            //Vertical
            LinearGradientBrush lBrush2 = new LinearGradientBrush(
                rect2,
                Color.Yellow,
                Color.Green,
                LinearGradientMode.Vertical);
            g.FillRectangle(lBrush2, rect2);

            //ForwardDiagonal
            LinearGradientBrush lBrush3 = new LinearGradientBrush(
                rect3,
                Color.Yellow,
                Color.Green,
                LinearGradientMode.ForwardDiagonal);
            g.FillRectangle(lBrush3, rect3);

            //BackwardDiagonal
            LinearGradientBrush lBrush4 = new LinearGradientBrush(
                rect4,
                Color.Yellow,
                Color.Green,
                LinearGradientMode.BackwardDiagonal);
            g.FillRectangle(lBrush4, rect4);

            myPen.Dispose();
            lBrush.Dispose();
            lBrush2.Dispose();
            lBrush3.Dispose();
            lBrush4.Dispose();

 

    效果图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值