I have a ControlTemplatedouble ContentPresenters custom . The pattern applies to Label. When I set "Random Octopus" (just text) as the content of the label, it works exactly as expected. When I set "& lt; TextBlock & gt; Random Octopus & lt; / TextBlock & gt;" as Content, it does not work (only one ContentPresenter is visually represented). I use the following code to reproduce the behavior:
<Window x:Class="WeirdTextBlock.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<Style TargetType="Label">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Border BorderBrush="Red" BorderThickness="1" Padding="2">
<Grid>
<ContentPresenter />
<ContentPresenter Margin="2,2,0,0" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid Margin="20" HorizontalAlignment="Left">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="20" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0">
Random octopus
</Label>
<Label Grid.Row="2">
<TextBlock>Random octopus</TextBlock>
</Label>
</Grid>
</Window>
And here you can see how it looks:

, , Content, TextBlock, Label ? Label ( Label, )? !