Take the 2-minute tour ×

I am looking for ideas to create a WPF Brush with a brushed steel look, similar to the MacOSX Panther style, preferably without resorting to an ImageBrush. Is there a funky way to use a GradientBrush to create this effect?

Thanks in advance!

share|improve this question
Is there a reason why you don't want to use an ImageBrush ? I don't think there is an easy way to do it with other brushes... –  Thomas Levesque Aug 19 '10 at 8:43
@Thomas: I suspected that. An ImageBrush scales badly, doesn't it? Optimally, the Brush would look the same both on my 96 DPI desktop and my 200 DPI embedded device. But if you know a tutorial on how to design a fitting image, I'd appriciate it, too =) –  Jens Aug 19 '10 at 8:57
add comment

2 Answers

up vote 3 down vote accepted

I don't know how to do this easily with programmatic brushes, but when I have used Photoshop to create a brushed steel effect, I essentially created noise, then smeared (blurred) it in the direction of the brushing:


As someone mentioned in comments, you may want to do this, and create some sort of (repeating?) image brush. If you want your brushed steel effect to be programmatically generated, you could write a mean filter to do the blur for you. Generating noise is simple enough :)

An example of implementing a mean filter:


Modify this to have a Nx1 matrix, or have small (zero) for weights not on the current line, and you will have a horizontal blur.

share|improve this answer
Thanks for the answer! This would not be easy to reproduce as a WPF brush, but may be worth a try. I'll leave the question open for a while longer =) –  Jens Aug 23 '10 at 6:34
add comment

You could use a rotated LinearGradientBrush with many GradientStops in different grey tones. Well, it's at least an approach. For it to be scalable you would somehow need to make the GradientStops just one pixel wide which probably requires giving the size of the filled object to the brush, I guess. Might become a difficult task, but that's the fate of a real hacker, isn't it?

share|improve this answer
add comment

Your Answer


