zoukankan      html  css  js  c++  java
  • 渐变颜色LinearGradientBrush

    LinearGradientBrush是用来渐变效果的,使用的初始化参数是矩形区域,开始颜色,结束颜色,颜色变化方向,它能够形成比较统一的渐变效果,对比PathGradientBrush的渐变,它的特点是它与周围的颜色渐变频率是一样的,设置LinearGradientBrush的区域大小时,可以想象一个大的有渐变色的长方形,压在多边形上面,并根据多边形的边界裁剪。

    效果图

    源码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing.Drawing2D;

    namespace Graphic
    {
        public partial class Demo_UseLinearGradientBrush : Form
        {
            public Demo_UseLinearGradientBrush()
            {
                InitializeComponent();

               
            }

            private void b_start_color_Click(object sender, EventArgs e)
            {
                ColorDialog clr = new ColorDialog();

                clr.ShowDialog();

                this.p_start_color.BackColor = clr.Color;
            
            }

            private void b_end_color_Click(object sender, EventArgs e)
            {
                ColorDialog clr = new ColorDialog();

                clr.ShowDialog();

                this.p_end_color.BackColor = clr.Color;

              
            }


            private void p_drawpic_Paint(object sender, PaintEventArgs e)
            {
                   drawpic(this.p_start_color.BackColor, this.p_end_color.BackColor);
                  
            }


            //绘图方法
            private void drawpic(Color start, Color end)
            {

                LinearGradientBrush br =
                 new LinearGradientBrush(this.ClientRectangle, start, end, LinearGradientMode.ForwardDiagonal);

                Graphics g = this.p_drawpic.CreateGraphics();//为控件创建Graphics
                g.Clear(this.BackColor);
                g.FillRectangle(br,this.ClientRectangle);

                Font font = new Font("隶书", 50, FontStyle.Bold);
                g.DrawString("测试", font, br, new PointF(100, 50));

              
                g.Dispose();

            }


        }
    }

     

  • 相关阅读:
    Delphi 中多线程同步的一些处理方法
    delphi 讲的比较详细的多线程
    Delphi MSComm 实时串口通讯
    Delphi多线程数据库查询(ADO)
    常用学习链接收藏
    Linux目录及常用命令
    DEBUG和INFO的使用
    git命令
    9.9 接口与工厂
    9.4 Java中的多继承
  • 原文地址:https://www.cnblogs.com/huangjihua/p/4125218.html
Copyright © 2011-2022 走看看