抗锯齿SmoothingMode扭曲虚线笔
题
为什么开启抗锯齿会干扰我的虚线笔?
(来源: googlepages.com )
解决方案
我认为这是创建一个宽度为0然后缩放的笔的问题。在我看来,有两种解决方法:
- 创建宽度更大的笔。我发现在0.38f处,抗锯齿线中的破折号开始正确缩放。
- 手动转换Pen的DashPattern属性中的值。 醇>
您可以使用一些C#3.0代码执行后一种解决方法:
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
using (Pen p = new Pen(Color.Black, 0.0f))
{
p.DashStyle = DashStyle.Dash;
g.ScaleTransform(4.0f, 4.0f);
g.DrawLine(p, 5.0f, 5.0f, 55.0f, 5.0f);
g.SmoothingMode = SmoothingMode.AntiAlias;
p.DashPattern = Array.ConvertAll(p.DashPattern, d => d * 4.0f);
g.DrawLine(p, 5.0f, 10.0f, 55.0f, 10.0f);
}
base.OnPaint(e);
}
不隶属于 StackOverflow