2009-05-07 3 views

답변

4

나는이 0 폭 펜을 만든 다음 확장의 문제라고 생각합니다. 이 문제를 해결하는 방법은 두 가지가 있습니다.

  1. 큰 너비로 펜을 만듭니다. 안티 알리아싱 된 라인의 대시가 올바르게 확장되기 시작한 것을 0.38f에서 발견했습니다.
  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 코드의 비트와 함께 후자의 해결 방법을 수행 할 수 있습니다

관련 문제