El pan de cada día en el mundo del desarrollo de aplicaciones es encontrarnos con un problema que alguien ya solucionó... El día de hoy he sumado un punto más a la estadística ya que necesitaba generar un organigrama dinámicamente... Haciendo una búsqueda rápida en google encontre un excelente artículo en CodeProject http://www.codeproject.com/KB/cs/TreeGenerator.aspx.
Pero, como buenos consumidores siempre encontramos algo para estar inconformes, y por eso el origen de esta entrada en el blog; ya que al hechar un vistazo al artículo de cp lo primero que noté fue que a pesar de parecer muy funcional no estaba muy bonito gráficamente hablando... Y si está el código disponible... xq no añadirle un pequeño fix para que se vea como yo quiero? Muchas veces somos del grupo miro, utilizo y no toco... Como parte de la gran comunidad del "alguien ya lo hizo" no esta mal de vez en cuando ser ese que tuvo que hacerlo y lo publicó para el uso de los demás, lamentablemente algo no muy profesado en EC...
Yendo al grano, bastó remembrar mis andanzas por el mundo del GDI+ y darle un pequeño smooth a los cuadros del organigrama con unas cuantas líneas:
gr.CompositingQuality = CompositingQuality.HighQuality;
gr.SmoothingMode = SmoothingMode.AntiAlias;
//Comentando lo hecho x el autor original
//gr.DrawRectangle(boxPen, currentRectangle);
//gr.FillRectangle(new SolidBrush(_BoxFillColor), currentRectangle);
GraphicsPath path = CornerRendererHelper.RoundRectangle(currentRectangle, 20);
gr.FillPath(new LinearGradientBrush(currentRectangle,_BoxFillColor, _BoxFillColor2, LinearGradientMode.BackwardDiagonal), path);
Aquí con la brocha gradient el organigrama se dibuja mucho mejor, y utilizando una utilería hecha por mi buen amigo John (seguramente ni se acuerda que hizo esa clase) el rectangulo se redondea...
He aquí las diferencias:
Code Project:
Luego de las mejoras
Go ahead! Hágalo usted mismo.
Los fuentes modificados de la librería se pueden encontrar aqui
Salu2
gish@c
No estaba muerta estaba de Parranda!!!
Hace 11 años