C#窗口形式的漂亮图形

ras*_*ole 0 c# graphics

我需要使用C#在Windows窗体中创建一些简单的图形.简单来说,我的意思是线条,圆圈等.但是,当我绘制例如一个实心圆圈时,边缘不平滑(正如使用正方形像素绘制圆形时所预期的那样),但是当绘制具有相同像素数的相同圆圈时矢量程序它看起来很完美.我在这个例子中一直在使用Inkscape.

也许矢量软件使用某种渲染功能来平滑颜色,但这可能在C#中没有创建太多代码吗?以下是代码示例,Graphics用于创建要绘制的画布.

private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
   Graphics canvas = e.Graphics;
   Brush brush = Brushes.Aqua;
   canvas.FillEllipse(brush, 0, 0, 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

解决方案 此代码可以解决问题:

private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
   Graphics canvas = e.Graphics;
   canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   Brush brush = Brushes.Aqua;
   canvas.FillEllipse(brush, 0, 0, 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*lds 9

您想使用该System.Drawing.Graphics.SmoothingMode属性.在开始使用您的Graphics对象之前,请执行以下操作:

canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Run Code Online (Sandbox Code Playgroud)

这应该给你一个很好的抗锯齿椭圆而不是默认的锯齿椭圆.

同样,如果要在图像中绘制高质量文本,请使用该System.Drawing.Graphics.TextRenderingHint属性.


正如其他人在评论中提到的那样,您可能需要考虑使用WPF.WinForms已过时.