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
相关产品推荐
相关产品推荐

