【问题标题】:Antialiased SmoothingMode distorts Dashed PenAntialiased SmoothingMode 扭曲虚线笔
【发布时间】:2009-05-07 13:59:49
【问题描述】:

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


(来源:googlepages.com

【问题讨论】:

    标签: .net winforms gdi+ paint


    【解决方案1】:

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

    1. 创建宽度较大的笔。我发现在 0.38f 处,抗锯齿线中的虚线开始正确缩放。
    2. 手动转换 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);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 2022-01-07
      • 2010-12-29
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多