18 dezembro 2010

Desenhar com System.Drawing

Desta vez, foi necessário desenhar utilizando o namespace "System.Drawing".

Pretendia apresentar a relação entre produção efectiva e produção estimada de um conjunto de serviços. Os mschart tornaram-se impraticáveis nesta situação, pelo que a melhor opção seria desenhar uns simples rectângulos.

Este namespace oferece muitas opções de desenho e é interessante poder controlar ao pormenor todos os detalhes do desenho que se pretende efectuar. Para a minha situação, desenhar um rectângulo não é nada de muito extraordinário, mas quem sabe de futuro não utilize novamente.

Os maiores problemas que verifiquei prenderam-se em como desenhar correctamente e qual a extensão de imagem a utilizar. É necessário agora testar as coisas mais a fundo.

Ao ser criada uma imagem de por exemplo A50:L200, antes de desenhar, é necessário pintar o fundo. Utilizar a cor Transparent pareceu não ter efeito, pelo que tive escolher a cor de background igual à da página;

Dois desenhos sobrepostos, o seguinte vai ficando por cima do anterior. Não testei, mas imagino que nesta situação, a utilização do Transparent deve funcionar;

A extensão .jpg apresentava artefactos, pelo que a opção terá de ficar por .bmp ou .png;

A situação mais peculiar foi que ao desenhar, apenas o desenho aparecia, a restante página desaparecia! Desconheço o motivo, mas a solução neste caso passa por criar um ficheiro à parte que apenas faz o desenho, e sempre que necessário colocar como source de objecto image esse ficheiro. Passar os campos necessários (querystring por exemplo) e será o suficiente.

Fontes:
http://forums.asp.net/t/1187951.aspx
http://projects.ischool.washington.edu/tabrooks/545/2006Winter/GraphicsExamples/WebForm.htm

Sem comentários: