#300 – Button is a ContentControl
May 16, 2011 1 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>