Está haciendo una gran cantidad de imágenes repetidas más o menos eficiente que el uso de cepillos en WPF?

StackOverflow https://stackoverflow.com/questions/2059262

Pregunta

Una aplicación nuestra compañía está trabajando en la actualidad muestra muchas formas rectangulares con gradientes para dibujar 'Azulejos'. Una discusión interna sucedió que plantea una cuestión de rendimiento. Estas baldosas son aproximadamente 100 píxeles por 200 píxeles, y son o bien gradiente sombreadas de color rojo, amarillo o verde. En un momento dado, podría haber hasta 100 de estos azulejos que aparecen en pantalla. ¿Sería más performante para nosotros para crear una imagen para cada uno (rojo, amarillo, verde) y repetir cuando sea necesario, o sería mejor para nosotros para continuar el dibujo utilizando cepillos estándar de WPF?

EDIT: Para aclarar, el pincel de degradado que estamos utilizando es un LinearGradientBrush.

¿Fue útil?

Solución

A partir de la experiencia, dibujo utilizando cepillos tendrá un rendimiento mucho mejor. La sobrecarga de carga hasta las imágenes de mosaico y haciéndolos es grande en comparación a la prestación de rectángulos rellenos.

Otros consejos

La única manera de aclarar esto sería probar las dos cosas y medir el rendimiento de cada enfoque.

Se necesitaría añadir código en cuando el bucle de render y registrar el resultado en un archivo, a continuación, forzar un 1000 (o incluso 100.000) dibuja de nuevo para ser capaz de obtener una cifra realista.

Mi primera impresión es que el LinearGradientBrush sería más rápido que cargar una imagen (incluso de recursos) - pero estoy dispuesto a estar equivocado

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top