One of the main hurdles we had to overcome was to make it easy for users to customize reuxables themes to their liking. Developers that beta tested reuxables mentioned that more often than not they'd only need to change the colors rather than the shapes of the controls.
So we opted to keep global brushes. You can read more about Global Brushes and how to use them in my article in the Expression Newsletter Feb '08 issue.
The main concept is explained in the diagram above. We have two Color objects created as named resources. A LinearGradientBrush is created by binding the GradientStop to the color resources. The control (Button in this case) uses that Brush as its background. We often use more complex structures where the base color for all controls and brushes is a single color and separate vectors create the shading via monochrome brushes - like with the Glass themes - so changing a single color (instead of two) changes the entire theme.
Reuxables comes with full source code. http://www.reuxables.com