#300 – Button is a ContentControl
May 16, 2011 Leave a comment
Button is a ContentControl, which means that it can contain exactly one child control. The child element can be any .NET object.
A simple string is the most common content for a Button.
<Button Content="Click me" Click="Button_Click"/>
Examining the Button control at runtime, you can see that its stores an instance of a string in its Content property. Also note that the base type of Content is object, meaning that the button could store any .NET object as its content.
Here’s a Button that contains a single Ellipse control as its content:
<Button Click="Button_Click" Width="140" Height="80">
<Ellipse Fill="PaleGreen" Stroke="Blue" StrokeThickness="5" Width="120" Height="60"/>
</Button>

And here’s a Button that uses a StackPanel to host several child controls.
<Button Click="Button_Click" Width="140" Height="120">
<StackPanel>
<Ellipse Stroke="Blue" StrokeThickness="5" Width="120" Height="60"/>
<Label Content="Name my ellipse"/>
<TextBox />
</StackPanel>
</Button>

