Blog
Using Element.Property Syntax for the SolidColorBrush Class
By Ken Getz | January 30, 2013
Even once you've learned about shapes and geometries, and creating your own drawings, youneed to learn brushes in order to create the kind of content you'll need in rich, XAML-based applications.
Think of a brush as a means to paint, or fill an area with its output. Differentbrushes provide different types of output: Some paint with a solid color, others paint with a gradient, pattern, image, or drawing. This article focuses on specifying colors for the simplest brush, the SolidColorBrush class, using Property.Element syntax to describe the SolidColorBrush. This syntax is more verbose, but it allows you to specify additional settings,including the brush's opacity.
Using Element.Property syntax when specifying a color, you can get the best of both worlds: That is, you can specify a color using its name as a string, and you can also set the Opacity property separately. If you want to alter the opacity of a color at runtime, this is the best solution(because the opacity can be set as a separate property, rather than requiring you to alter the color itself). Using this syntax, you might see the Fill property for a Rectangle shape set like the following:
<Rectangle Width="75" Height="75">
<Rectangle.Fill>
<SolidColorBrush Color="Red" />
</Rectangle.Fill>
</Rectangle>
The Figure below demonstrates this syntax. In the following example, the Opacity property of a SolidColorBrush has been bound to the Value property of the Slider, and the SolidColorBrush object provides the Fill property for a Rectangle:
<Rectangle Canvas.Left="60"
Width="203" Height="70"
Stroke="Blue" StrokeThickness="5">
<Rectangle.Fill>
<SolidColorBrush
Color="Red"
Opacity="{Binding Value,
ElementName=opacitySlider}" />
</Rectangle.Fill>
</Rectangle>
This post is an excerpt from the online courseware for our Windows 8 Using XAML: Bindings, Shapes, and Animation course written by expert Ken Getz.