سؤال

لماذا التبديل على تنعيم تتداخل مع متقطع القلم ؟

alt text
(المصدر: googlepages.com)

هل كانت مفيدة؟

المحلول

وأعتقد أن هذه القضية مع خلق القلم مع 0 width ومن ثم التوسع.كما أرى ، هناك طريقتان لحل هذه:

  1. خلق القلم مع أكبر عرض.لقد وجدت أنه في 0.38 و التقطعات في مكافحة مستعارة خط بدأت التوسع بشكل صحيح.
  2. يدويا تغيير القيم في القلم 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);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top