C# 如何更改使用System.Drawing.Pen绘制的线的厚度?

C# 如何更改使用System.Drawing.Pen绘制的线的厚度?,c#,winforms,C#,Winforms,我使用Graphics.DrawLine方法绘制了下面的图标。 问题是,将笔的宽度从1.0f更改为1.5f不会显示线条的厚度有任何差异 将笔的宽度设置为1.6f会使线条更暗 我需要画一条比第一条稍暗,比最后一条稍亮的线 我已尝试设置Graphics.SmoothingMode属性,如下所示 graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; 这没有任何区别。我不知道我是否需要设置任何其他设置 财

我使用Graphics.DrawLine方法绘制了下面的图标。

问题是,将笔的宽度从1.0f更改为1.5f不会显示线条的厚度有任何差异

将笔的宽度设置为1.6f会使线条更暗

我需要画一条比第一条稍暗,比最后一条稍亮的线

我已尝试设置Graphics.SmoothingMode属性,如下所示

graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
这没有任何区别。我不知道我是否需要设置任何其他设置 财产

请分享您的宝贵建议。提前谢谢

问候,,
Mohanram Anbukkarasu.

页面单位是像素,因此值1.5f通过Math.Round方法内部转换为INT。 1.5浇铸为1

1.6浇铸为2

1和2之间没有值


这一要求是无法实现的。

有一个笔宽小于1.5的错误,它在GDI+中已经存在多年了。一个可能的解决方法是用较浅的颜色绘制线条。您可以为每条线条设置不同的透明度。谢谢您的回复。我不能决定这条线的颜色。我需要使用相应团队提供的颜色来画线。您也可以尝试在屏幕外位图对象上将所有内容绘制为所需大小的2倍,然后将其大小调整为50%。如果它将在内部强制转换,为什么Microsoft会公开浮动?但是,我可以看到2.0f和2.5f之间的差异。