Est rendu beaucoup d'images répétées plus ou moins performant que d'utiliser des brosses en WPF?

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

Question

Une demande notre société travaille sur affiche actuellement de nombreuses formes de rectangle avec des gradients pour dessiner « tuiles ». Une discussion interne est venu à ce sujet posé une question de performance. Ces tuiles sont d'environ 100 pixels par 200 pixels, et sont soit gradient ombrées rouge, jaune ou vert. À un moment donné, il pourrait y avoir jusqu'à 100 de ces tuiles sur l'écran. Serait-il plus performant pour nous de créer une image pour chaque (rouge, jaune, vert) et de le répéter en cas de besoin, ou serait-il préférable pour nous de continuer à les dessiner en utilisant des brosses standards WPF?

EDIT: Pour clarifier, la brosse à gradient nous utilisons est un LinearGradientBrush.

Était-ce utile?

La solution

De l'expérience, les tirant à l'aide des pinceaux aura beaucoup de meilleures performances. Les frais généraux de chargement les images de tuiles et de les rendre est grand par rapport au rendu des rectangles remplis.

Autres conseils

La seule façon d'éclaircir ce point serait de l'essayer dans les deux sens et de mesurer la performance de chaque approche.

Vous auriez besoin d'ajouter du code en temps la boucle et connectez-vous le résultat de fichier de rendu, la force puis 1000 (voire 100 000) redessine pour être en mesure d'obtenir un chiffre réaliste.

Mon sentiment profond est que la LinearGradientBrush serait plus rapide que le chargement d'une image (même des ressources) - mais je suis prêt à être démentie

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top