You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# .NET Core中Graphics绘制带边框填充矩形失效问题

问题原因

FillRectangle方法调用失败的核心原因是缺少必填参数,同时现有代码的绘制顺序存在逻辑问题:如果先绘制边框再执行填充,填充色会覆盖边框线条,导致最终显示效果不符合预期。

正确实现代码

GDI+绘制带填充色+外边框的矩形,固定遵循先填充、后描边的顺序,避免填充内容覆盖边框,正确写法如下:

private void FooMethod(Graphics graph)
{
    // 定义矩形绘制区域
    Rectangle rect = new Rectangle(0, 0, 100, 45);
    
    // 1. 绘制填充背景:FillRectangle必须传入[填充画刷, 绘制区域]两个必填参数
    // 如需自定义填充色,可替换为自定义实色画刷:new SolidBrush(你的自定义颜色)
    graph.FillRectangle(Brushes.White, rect);
    
    // 2. 绘制外边框,必须放在填充逻辑之后执行
    graph.DrawRectangle(Pens.Black, rect);
}
用法说明
  • FillRectangle支持多个重载,最常用的两种传参方式:
    • 传入画刷+预先定义的Rectangle结构体,适合固定尺寸的矩形绘制
    • 传入画刷+X坐标+Y坐标+宽度+高度四个数值,适合动态计算位置尺寸的场景
  • 不要颠倒填充和描边的顺序:先描边后填充会导致边框内侧被填充色覆盖,出现边框粗细不均、显示残缺的问题
  • 自定义填充色时,如果你自己实例化了SolidBrush对象,记得在绘制完成后调用Dispose()方法释放GDI资源,或者用using块包裹避免资源泄漏

内容的提问来源于stack exchange,提问作者Error404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:03:27