zoukankan      html  css  js  c++  java
  • 画图------Brush

    SolidBrush继承自Brush,表示单色的笔刷。
    Brushes 类则继承自System.Object。它提供了一些标准颜色的画笔,包含静态的只读属性,这些属性返回由属性名指示的颜色的 Brush 对象。通常不必显式处置由此类中的属性返回的画笔,除非该画笔用于构造新画笔。因此,没有必要创建Brushes 类的实例
    可以这么看Brush brush = Brushes.Green 和 Brush brush = new SolidBrush(Color.Green) 是等效的。只不过后者一般是需要 brush.Dispose() 的,前者不需要。
    还有其他的继承自 Brush 的类
    System.Drawing.Drawing2D.HatchBrush(阴影、前景色和背景色定义的矩形笔刷)
    System.Drawing.Drawing2D.LinearGradientBrush(线性渐变笔刷)
    System.Drawing.Drawing2D.PathGradientBrush(用渐变填充 GraphicsPath 对象的内部的笔刷)
    System.Drawing.TextureBrush(用图像来填充形状的内部的笔刷)


    //实现功能:用Brush画图

    //   1)创建的渐变色Brush(LinearGradientBrush,用完后应及时Dispose.)

    //   2)Brushes绘图.(无须创建Brush)

     //  3)创建自定义颜色的SolidBrush 

    //   4)画矩形,椭圆,扇形,多边形

    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 myDrawBrushA

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

                SetStyle(ControlStyles.Opaque, true);//本例由于在OnPaint()中将客户区先涂上白色后再绘画,所以此句可有可无。

            }

     

            protected override void OnPaint(PaintEventArgs e)

            {

                //base.OnPaint(e);

                Graphics g = e.Graphics;

                g.FillRectangle(Brushes.White, ClientRectangle);//全部客户区涂上白色

                g.FillRectangle(Brushes.Red, new Rectangle(20, 20, 80, 80));//红色正方形

     

                //以下创建一个Brush画渐变色正方形

                Brush linearGradientBrush = new LinearGradientBrush(

                    new Rectangle(20, 110, 80,80), Color.Blue, Color.White,45);//创建渐变色brush,渐变方向:45-左上至右下;90-向下:......

                g.FillRectangle(linearGradientBrush, new Rectangle(20, 110, 80, 80));//画渐变色正方形

                linearGradientBrush.Dispose();//注意及时删除渐变色brush

     

                //以下用Brushes(不要创建Brush)

                g.FillEllipse(Brushes.Aquamarine, new Rectangle(110,20, 100, 60));//椭圆(前两个参数是外接矩形左上角坐标)

                g.FillPie(Brushes.Chartreuse, new Rectangle(110, 110, 80, 80), 90, 270);//扇形(207为圆心角度数,90为扇形旋转的角度

                g.FillPolygon(Brushes.BlueViolet, new Point[]{

                    new Point(220,10),

                    new Point(300,10),

                    new Point(250,40),

                    new Point(350,80),

                    new Point(230,100)

                });       //多边形

     

             //以下用创建自定义颜色的SolidBrush画圆

                     

                SolidBrush trnsRedBrush = new SolidBrush(Color.FromArgb(120, 255, 0, 0));

                SolidBrush trnsGreenBrush = new SolidBrush(Color.FromArgb(120, 0, 255, 0));

                SolidBrush trnsBlueBrush = new SolidBrush(Color.FromArgb(120, 0, 0, 255));

                // Base and height of the triangle that is used to position the

                // circles. Each vertex of the triangle is at the center of one of the

                // 3 circles. The base is equal to the diameter of the circles.

                float triBase = 50;

                float triHeight = (float)Math.Sqrt(3 * (triBase * triBase) /4);

                // Coordinates of first circle's bounding rectangle.

                float x1 = 200;

                float y1 = 100;

                // Fill 3 over-lapping circles. Each circle is a different color.

                g.FillEllipse(trnsRedBrush, x1, y1, 2 * triHeight, 2 * triHeight);

                g.FillEllipse(trnsGreenBrush, x1 + triBase / 2, y1 + triHeight,

                2 * triHeight, 2 * triHeight);

                g.FillEllipse(trnsBlueBrush, x1 + triBase, y1, 2 * triHeight, 2 * triHeight);

            }

        }

    }

  • 相关阅读:
    (4.3)ODBC/OLE DB/ADO概念与使用情况
    查找至少连续出现三次的所有数字/连续3天的日期【LeetCode】
    javascript 事件触发
    document.referrer
    创业公司
    关于javascript 回调函数
    promise
    javascript deferred
    document.readystate
    window---->load, document------DOMContentLoaded
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/4548509.html
Copyright © 2011-2022 走看看