Administrator
发布于 2025-11-05 / 7 阅读
0
0

C#项目11知识点汇总

本章内容

  1. 图形操作基础:GDI和GDI+

  2. 绘图工具:Graphics类

  3. 处理字体和图像:Font类和Image类

1.GDI是什么

  • Graphic Device Interface 图形设备接口

    • 接口:GDI提供了一个统一的、标准化的编程接口。

    用途:在窗体上绘制矢量图形和文字,处理像素图。

  • GDI是传统的、过去的、第一代的图形设备接口。

2.GDI+是什么

GDI+现代的增强版图形设备接口。主要由二维矢量图形、图像处理和版式三部分组成。

3. Graphics类是什么

定义:Graphics用于绘图。Graphics类代表一个块画布,画布提供了各种绘图工具。

  • GDI+ 的核心类,封装了绘制直线、曲线、图形、图像和文本的方法。

  • 不能直接实例化,必须通过特定方法获取其对象。

  • 代表一个画布,与特定的设备上下文关联。

4.如何使用Graphics

答:一句话:通过获取它的实例,调用其方法,在“画布”(如窗体、位图)上绘制图形。

绘图的基本步骤

  • 创建 Graphics 对象。

  • 创建绘图工具(画笔、画刷等)。

  • 使用 Graphics 类的方法进行绘制。

  • 清空 Graphics 对象。

  • 释放资源。

5.获取Graphics对象的三种方法

方法1:通过窗体的事件获取(最常用、最推荐)

在Paint事件中获取这是最标准的方式,用于绘制持久的、需要重绘的图形。

//创建了一个画布(画布自带各种绘画工具:钢笔、笔刷、颜色、填充颜色的工具)
private void Form1_Paint(object sender, PaintEventArgs e)
{
    // 从事件参数中获取Graphics对象
    Graphics g = e.Graphics;
}

方法2:通过窗体的方法获取

为控件创建Graphics对象(临时绘制),用于响应事件(如按钮点击)时的临时绘制,但绘制内容在窗体重绘后会消失。

private void Button1_Click(object sender, EventArgs e)
{
    // 为窗体创建Graphics对象
    Graphics g = this.CreateGraphics()
}

方式3:通过Graphics类的方法获取

用途:在位图上绘图

private void DrawOnBitmap()
{
    // 创建一个与窗体同样大小的位图
    Bitmap bmp = new Bitmap(this.Width, this.Height);
    // 获取位图的Graphics对象
    Graphics g = Graphics.FromImage(bmp)
}

6.相关的命名空间

  • System.Drawing:提供 GDI+ 基本图形功能(Graphics, Pen, Brush, Font 等)。

  • System.Drawing.Drawing2D:提供高级二维和矢量图形功能(渐变画刷、矩阵等)。

  • System.Drawing.Imaging:提供高级图像处理功能。

  • System.Drawing.Text:提供高级字体和文本排版功能。

7.Graphics 类的常用方法有哪些

  • 绘制图形DrawLine, DrawRectangle, DrawEllipse, DrawArc, DrawPie, DrawPolygon

  • 填充图形FillRectangle, FillEllipse, FillPie, FillPolygon

  • 绘制文本DrawString

  • 绘制图像DrawImage

  • 其他Clear(清除画布), Dispose(释放资源)。

8.画笔 (Pen 类)的用途是什么

  • 用于绘制线条和图形轮廓。

  • 可以设置颜色和宽度。

  • 可以使用 Color.FromArgb 方法创建自定义颜色。

9. 画刷 (Brush 类)的用途是什么

  • 用于填充图形的内部。

  • 是一个抽象基类,需使用其派生类:

    • SolidBrush:单色画刷。

    • HatchBrush:图案画刷(位于 System.Drawing.Drawing2D 命名空间)。

    • LinearGradientBrush:线性渐变画刷(位于 System.Drawing.Drawing2D 命名空间)。

10.如何绘制直线

  • 方法:DrawLine

  • 参数:可以使用两个 Point 结构,或直接使用四个坐标值 (x1, y1, x2, y2)。

11. 如何绘制矩形

  • 方法:DrawRectangle

  • 参数:指定左上角坐标、宽度和高度。

12. 如何绘制椭圆

  • 方法:DrawEllipse

  • 参数:指定外接矩形的左上角坐标、宽度和高度。宽高相等时即为圆。

13. 如何绘制圆弧

  • 方法:DrawArc

  • 参数:指定一个边界矩形、起始角度和扫过的角度。

14. 如何绘制扇形

  • 方法:DrawPie

  • 参数:与 DrawArc 类似,指定边界矩形、起始角度和扫过的角度。

15. 如何绘制多边形

  • 方法:DrawPolygon

  • 参数:一个 Point 结构数组,表示多边形的各个顶点。

16. Font类的用途是什么

  • 用于定义文本的格式,包括字体、字号和样式。

  • 样式 (FontStyle):Regular(普通)、Bold(加粗)、Italic(斜体)、Underline(下划线)等。

17.如何绘制文本

  • 方法:DrawString

  • 参数:需要绘制的字符串、Font 对象、Brush 对象、起始坐标。

18. 如何绘制图像

  • 方法:DrawImage

  • 参数:Image 对象、坐标,或坐标加指定大小。


评论