C#中的GDI+怎么用 C# System.Drawing命名空间进行图形绘制


答案:C#中使用System.Drawing进行GDI+绘图,通过Graphics对象在Paint事件或位图上绘制形状、文本等,需用using语句管理Pen、Brush等资源释放。

c#中的gdi+怎么用 c# system.drawing命名空间进行图形绘制

在C#中,使用 GDI+ 进行图形绘制主要通过 System.Drawing 命名空间来实现。这个命名空间提供了丰富的类,用于在窗体、控件或位图上绘制线条、形状、文本和图像。下面介绍基本用法和常见操作。

1. 引入 System.Drawing 命名空间

在代码文件顶部添加:

using System.Drawing;
using System.Drawing.Drawing2D;

如果是在 WinForms 项目中绘图,通常还需要处理 Paint 事件。

2. 在窗体或控件上绘图(Paint 事件)

最常见的绘图方式是响应控件的 Paint 事件,例如在 Form 或 Panel 上绘制。

示例:在窗体上绘制一个红色矩形和一段文字:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics; // 获取绘图表面

    // 绘制矩形
    Pen pen = new Pen(Color.Red, 2);
    g.DrawRectangle(pen, 50, 50, 200, 100);

    // 填充一个椭圆
    SolidBrush brush = new SolidBrush(Color.Blue);
    g.FillEllipse(brush, 80, 80, 100, 60);

    // 绘制文字
    Font font = new Font("微软雅黑", 12);
    g.DrawString("Hello GDI+", font, Brushes.Black, new PointF(60, 160));

    // 释放资源(实际开发中建议使用 using)
    pen.Dispose();
    brush.Dispose();
    font.Dispose();
}

然后在窗体构造函数中绑定事件:

this.Paint += Form1_Paint;

3. 使用 using 管理资源(推荐做法)

Graphics、Pen、Brush 等对象实现了 IDisposable 接口,应使用 using 语句确保及时释放非托管资源。

Copymatic Copymatic

Cowriter是一款AI写作工具,可以通过为你生成内容来帮助你加快写作速度和激发写作灵感。

Copymatic 149 查看详情 Copymatic private void Form1_Paint(object sender, PaintEventArgs e)
{
    using (Graphics g = e.Graphics)
    {
        using (Pen redPen = new Pen(Color.Red, 2))
        {
            g.DrawRectangle(redPen, 50, 50, 200, 100);
        }

        using (SolidBrush blueBrush = new SolidBrush(Color.Blue))
        {
            g.FillEllipse(blueBrush, 80, 80, 100, 60);
        }

        using (Font font = new Font("微软雅黑", 12))
        {
            g.DrawString("Hello GDI+", font, Brushes.Black, new PointF(60, 160));
        }
    }

4. 常见绘图操作

绘制基本形状:

  • DrawLine:画线
  • DrawRectangle / FillRectangle:画矩形 / 填充矩形
  • DrawEllipse / FillEllipse:画椭圆 / 填充椭圆
  • DrawString:绘制文本
  • DrawImage:绘制图像

自定义画笔和画刷:

  • Pen 可设置颜色、线宽、线型(如虚线)
  • SolidBrush:纯色填充
  • LinearGradientBrush:线性渐变填充
  • HatchBrush:阴影填充

示例:绘制虚线矩形

using (Pen dashPen = new Pen(Color.Green, 1))
{
    dashPen.DashStyle = DashStyle.Dash;
    g.DrawRectangle(dashPen, 100, 100, 150, 80);
}

5. 在位图上绘图(离屏绘制)

有时需要先在内存中的位图上绘图,再显示出来,避免闪烁。

Bitmap bitmap = new Bitmap(400, 300);
using (Graphics g = Graphics.FromImage(bitmap))
{
    g.Clear(Color.White);
    g.DrawEllipse(Pens.Red, 50, 50, 200, 100);
}
// 显示到 PictureBox
pictureBox1.Image = bitmap;

这种方式常用于复杂绘图或动画场景。

基本上就这些。掌握 Graphics 对象、合理使用 Pen 和 Brush,并注意资源释放,就能高效使用 GDI+ 完成大多数绘图任务。

以上就是C#中的GDI+怎么用 C# System.Drawing命名空间进行图形绘制的详细内容,更多请关注其它相关文章!


# 相关文章  # 网站推广推选薇cz2016004专业  # 创业营销推广案例分析  # 视频seo优化招商  # 总结网站关键词排名优化  # 查关键词搜索排名  # 海山全网网站建设  # 网站建和优网站建设  # seo落地方案  # 密云seo优化排名  # 许昌seo网络营销技术  # 可以通过  # ai  # 为你  # 如何在  # 就能  # 是在  # 游戏开发  # 应用程序  # 图上  # red  # c#  # 微软  # win 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: mysql如何限制远程访问_mysql远程访问限制方法  如何查找哪个composer包引入了特定的依赖?  VS Code的时间线(Timeline)视图:您的代码时光机  电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】  Flexbox布局:实现粘性导航与底部页脚的完美结合  微博网页版入口链接 微博网页版在线互动平台  网易云音乐闹钟铃声设置教程  使用Python和NLTK从文本中高效提取名词的实用教程  蜻蜓FM如何设置移动流量播放  Golang中的rune与byte类型区别是什么_Golang字符与字节处理详解  《搜书吧》阅读书籍方法  抖音团长模式怎么做?团长模式是什么意思?  如何使用 Optional 类型并满足 Pylint 的类型检查  豆包AI怎样为教育场景定制答疑逻辑_为教育场景定制豆包AI答疑逻辑方案【方案】  HTML中多图片上传与预览:解决ID冲突的专业指南  如何在Golang中处理表单文件上传_Golang 表单文件上传示例  Go Template中优雅处理循环最后一项:自定义函数实践  谷歌学术论文搜索引擎 谷歌学术官网入口论坛永久链接  J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践  苹果SE如何开启单手模式_苹果SE单手操作功能  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  在React中正确处理HTML input type="number"的数值类型  excel怎么计算平均值 excel平均函数*ERAGE使用教学  CSS如何控制元素外边距_margin实现布局间隔  小米手机截图后如何查看历史_小米手机截图历史记录查看方法  折叠屏手机充不进电是什么问题? 特殊结构带来的维修难点  123平台官方登录入口 123邮箱网页端在线沟通工具  《虎扑》关闭社区内容推荐方法  51漫画网实时入口 51漫画网页版官方免费漫画入口  鸿蒙单条备忘录如何加密  使用Selenium在无头Chrome中交互动态菜单和复选框的策略  《气泡星球》兑换码礼包大全  QQ网站入口直接登录 QQ官方正版登录页面  qq邮箱格式填写示例 qq邮箱标准填写规范  Python测试中模块导入路径解析的最佳实践  抖音火山版注销账号抖音会注销吗 抖音火山版与抖音账号注销关系  win11怎么设置默认终端为Windows Terminal Win11替代CMD和PowerShell【技巧】  windows10怎么关闭自动安装应用_windows10禁止推广应用下载  C#解析并修改XML后保存 如何确保格式与编码的正确性  店铺如何做视频号推广?做视频号推广有用吗?  《绝区零》2.3前瞻|直播|内容介绍  微信朋友圈怎么设置三天可见 微信朋友圈设置指定天数可见步骤【教程】  C++ optional用法详解_C++17处理可能为空的返回值  WooCommerce购物车:强制显示所有交叉销售商品教程  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  《梦想世界:长风问剑录》药师一图流分享  抖音赚钱快速入门_新手必看的抖音赚钱步骤  iPhone 13 mini如何清理Safari缓存_iPhone 13 mini浏览器缓存清理方法  圆通快递包裹轨迹查询 圆通速递快件实时位置跟踪  以下哪一个是适应长期护理制度发展而设立的新职业 

 2025-11-05

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.