Pregunta

¿Por qué la activación del suavizado interfiere con mi pluma punteada?

 texto alternativo
(fuente: googlepages.com )

¿Fue útil?

Solución

Creo que este es un problema al crear un bolígrafo con un ancho de 0 y luego escalarlo. A mi entender, hay dos formas de solucionar esto:

  1. Cree el bolígrafo con un ancho mayor. Encontré que a 0.38f los guiones en la línea suavizada comenzaron a escalar correctamente.
  2. Transforme manualmente los valores en la propiedad Pen's DashPattern.

Puede hacer la última solución con un poco de código 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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top