2009-05-07 5 views

答えて

4

私はこれが0の幅とペンを作成し、スケーリングの問題であると信じています。これを回避するには、次の2つの方法があります。

  1. 大きな幅でペンを作成します。アンチエイリアシングされたラインのダッシュが適切に拡大縮小を開始したことがわかりました。
  2. ペンのDashPatternプロパティの値を手動で変換します。

    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); 
    } 
    
    :あなたがC#3.0のコードのビットと、後者の回避策を行うことができます