In the parts and states model, a Silverlight paradigm coming to WPF, a specific named part is sometimes needed to mark the bit where a controls content goes. For example, the template for a TextBox requires an element named as such x:Name="ContentElement" otherwise the TextBox has no text, and its just a box.
In WPF and in some other Silverlight controls, <ContentPresenter /> is all that is needed in the template for the magic to happen.
But in an example I have seen, the ContentPresenter.Content property is hooked up using TemplateBinding as in the example below, however it appears to work without it and...
...actually any type of ContentControl, Label etc. seems to work as long as the Content property is template bound.
This chunk of XAML should go somewhere in your ControlTemplate:
<ContentPresenter
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Cursor="{TemplateBinding Cursor}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>