wpfperformanceimagerenderingbrushes

Is rendering a lot of repeated images more or less performant than using brushes in WPF?


An application our company is working on currently displays many rectangle shapes with gradients to draw 'Tiles'. An internal discussion came about that posed a question of performance. These tiles are about 100 pixels by 200 pixels, and are either gradient shaded red, yellow, or green. At any given time, there could be up to 100 of these tiles on screen. Would it be more performant for us to create an image for each (red, yellow, green) and repeat it when needed, or would it be better for us to continue drawing them using standard WPF brushes?

EDIT: To clarify, the gradient brush we're using is a LinearGradientBrush.


Solution

  • From experience, drawing them using brushes will have far better performance. The overhead of loading up the tile images and rendering them is large compared to rendering filled rectangles.