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

如何增大C#绘图中Rectangle内白色圆点的尺寸?

如何增大白色圆点的尺寸?

我尝试了多种方法来增大圆点的尺寸,以下是我的实现代码:

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
static void Main(string[] args)
{
//Image image = new Bitmap(1000, 1000, PixelFormat.Format32bppArgb);
Bitmap bitmap = new Bitmap(100, 100, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graph = Graphics.FromImage(bitmap);
Pen pen = new Pen(Brushes.Green);
Rectangle rect = new Rectangle(0, 0, 100, 100);
graph.DrawRectangle(pen, rect);
Brush b = new HatchBrush(HatchStyle.Percent90, Color.Orange, Color.White);
// Fill rectangle to screen.
graph.FillRectangle(b, rect);
bitmap.Save("myImage.png", System.Drawing.Imaging.ImageFormat.Png);
}

橙色背景带白色圆点的示例图


解决方案

HatchStyle.Percent90是系统内置的固定样式,无法直接调整圆点大小。要自定义圆点尺寸,你可以用以下两种方式实现:

方法1:自定义纹理刷(TextureBrush)

创建一个小型纹理图案,绘制指定大小的白色圆点,再用这个纹理填充目标区域:

using System;
using System.Drawing;
using System.Drawing.Imaging;

static void Main(string[] args)
{
    Bitmap bitmap = new Bitmap(100, 100, PixelFormat.Format32bppPArgb);
    Graphics graph = Graphics.FromImage(bitmap);
    
    // 绘制绿色边框
    Pen pen = new Pen(Brushes.Green);
    Rectangle rect = new Rectangle(0, 0, 100, 100);
    graph.DrawRectangle(pen, rect);

    // 自定义纹理:橙色背景+白色圆点
    int dotSize = 15; // 调整此值改变圆点大小
    int textureUnitSize = 20; // 纹理单元大小,控制圆点间距
    Bitmap texture = new Bitmap(textureUnitSize, textureUnitSize);
    using (Graphics textureGraph = Graphics.FromImage(texture))
    {
        textureGraph.Clear(Color.Orange);
        textureGraph.FillEllipse(Brushes.White, 0, 0, dotSize, dotSize);
    }

    // 使用纹理刷填充矩形
    using (TextureBrush brush = new TextureBrush(texture))
    {
        graph.FillRectangle(brush, rect);
    }

    bitmap.Save("myImage.png", ImageFormat.Png);
}

方法2:手动循环绘制圆点

直接在目标画布上逐个绘制白色圆点,精准控制大小和分布:

using System;
using System.Drawing;
using System.Drawing.Imaging;

static void Main(string[] args)
{
    Bitmap bitmap = new Bitmap(100, 100, PixelFormat.Format32bppPArgb);
    Graphics graph = Graphics.FromImage(bitmap);
    
    // 绘制绿色边框
    Pen pen = new Pen(Brushes.Green);
    Rectangle rect = new Rectangle(0, 0, 100, 100);
    graph.DrawRectangle(pen, rect);

    // 填充背景为橙色
    graph.Clear(Color.Orange);

    int dotSize = 15; // 圆点大小
    int spacing = 20; // 圆点间距

    // 遍历绘制所有圆点
    for (int x = 0; x < rect.Width; x += spacing)
    {
        for (int y = 0; y < rect.Height; y += spacing)
        {
            graph.FillEllipse(Brushes.White, x, y, dotSize, dotSize);
        }
    }

    bitmap.Save("myImage.png", ImageFormat.Png);
}

两种方法都可以通过修改dotSize变量直接调整白色圆点的尺寸,spacing变量则可以控制圆点之间的距离,按需修改即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:20:29