为什么开启抗锯齿会干扰我的虚线笔?


(来源: googlepages.com

有帮助吗?

解决方案

我认为这是创建一个宽度为0然后缩放的笔的问题。在我看来,有两种解决方法:

  1. 创建宽度更大的笔。我发现在0.38f处,抗锯齿线中的破折号开始正确缩放。
  2. 手动转换Pen的DashPattern属性中的值。
  3. 您可以使用一些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);
    }
    
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top