C#编程-130:Brush的五个继承类

简介: C#编程-130:Brush的五个继承类

image.png

Brush笔刷类,可以用颜色和图像填充图形,是 抽象类,不可以实例化。


实例:

1、SolidBrushTest

image.png

using System;
using System.Drawing;
using System.Windows.Forms;
namespace SolidBrushTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Brush brush = new SolidBrush(Color.Orange);
            g.FillEllipse(brush, 10, 10, 200, 120);
            g.Dispose();
        }
    }
}


2、 TextureBrushTest

image.png

using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
namespace TextureBrushTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            string path = @"D:\CS\GDIPlusTest\TextureBrushTest\img\微信图片_20170817213231.jpg";
            Graphics g=e.Graphics;
            if (File.Exists(path))
            {
                Bitmap map = new Bitmap(path);
                Brush brush = new TextureBrush(map);
                g.FillEllipse(brush, 10, 10, 500, 500);
                brush.Dispose();
            }
            else
            {
                MessageBox.Show("image is not exists");
            }
            g.Dispose();
        }
    }
}


3、LinearGradientBrushTest

image.png

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace LinearGradientBrushTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
            private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            LinearGradientBrush lgb = new LinearGradientBrush(new Point(10,10),new Point(290,90),Color.White,Color.FromArgb(255,0,0,0));
            g.FillEllipse(lgb,10,10,280,120);
            lgb.Dispose();
            g.Dispose();
        }
    }
}


4、 PathGradientBrushTest

image.png

using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace PathGradientBrushTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //绘画路径
            GraphicsPath gp = new GraphicsPath();
            gp.AddEllipse(0,80,240,120);
            //路径渐变画刷
            PathGradientBrush pgb = new PathGradientBrush(gp);
            pgb.CenterColor = Color.Orange;
            Color[] colors = { Color.FromArgb(255,0,255,0)};
            pgb.SurroundColors = colors;
            //绘制椭圆
            e.Graphics.FillEllipse(pgb,0,80,240,120);
            pgb.Dispose();
        }
    }
}


5、 HatchBrushTest


image.png

using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace HatchBrushTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            HatchBrush hatchBrush = new HatchBrush(HatchStyle.HorizontalBrick,Color.Red,Color.Yellow);
            e.Graphics.FillEllipse(hatchBrush,0,80,240,120);
            hatchBrush.Dispose();
        }
    }
}

相关文章
|
1月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
1月前
|
C#
58.c#:directory类
58.c#:directory类
12 0
|
5天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
5天前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
6天前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写"Hello, World!"程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
6天前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。
|
6天前
|
缓存 算法 测试技术
优化 C#编程性能的策略
【4月更文挑战第20天】优化C#性能策略包括:选择合适算法和数据结构,避免频繁对象创建,缓存常用数据,减少内存分配,使用异步编程,优化数据库操作(如合理查询和使用索引),利用多线程并行处理,精简代码,使用性能分析工具,硬件升级,以及进行性能测试。综合应用这些策略可提升程序性能和响应性。
|
1月前
|
C#
深入C#中的String类
深入C#中的String类
11 0
|
1月前
|
C#
C#学习系列相关之多线程(二)----Thread类介绍
C#学习系列相关之多线程(二)----Thread类介绍
|
1月前
|
C#
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)