Propriedade WPF DataTemplate definida em Content
Novo no WPF e com guias, em cada guia o conteúdo é apresentado em um painel / janela de canto curvo / o que você quiser. Eu não tinha certeza de como fazer isso (Style, ControlTemplate), mas decidi seguir o caminho do DataTemplate.
Então agora eu tenho esse DataTemplate:
<DataTemplate x:Key="TabContentPresenter" >
<Border Margin="10"
BorderBrush="{StaticResource DarkColorBrush}"
CornerRadius="8"
BorderThickness="2"
Grid.Row="0"
Padding="5"
Background="{TemplateBinding Background}">
<ContentPresenter Content="{Binding}" />
</Border>
</DataTemplate>
Como você pode ver com a propriedade background, não quero definir a cor do plano de fundo no conteúdo, mas não sei como. Aqui eu uso.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="120"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ContentControl ContentTemplate="{StaticResource TabContentPresenter}" Background="White">
<!-- Something Here -->
</ContentControl>
<ContentControl ContentTemplate="{StaticResource TabContentPresenter}" Grid.Row="1" Background="Blue">
<!-- Something Here -->
</ContentControl>
</Grid>
O uso do DataTemplate está errado aqui ou existe outra maneira?
Provavelmente, eu poderia definir o plano de fundo diretamente para o conteúdo e mudar de preenchimento no modelo para margem no conteúdo, mas em algumas situações semelhantes que não funcionariam e é melhor ter que defini-lo apenas uma vez.
EDITAR:
Conforme o conselho, mudei para ControlTemplate e também o coloquei dentro de um estilo. Isso resolve o problema de segundo plano, mas cria um maior. Agora o conteúdo não aparecerá. Eu li em um blogaqui que colocar um targetType resolve isso, mas não resolveu meu problema. O código se parece com isso agora e também mudou o ContentControl para usar o estilo em vez de Template.
<Style x:Key="TabContentPresenter" TargetType="ContentControl" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContentControl">
<Border Margin="10"
BorderBrush="{StaticResource DarkColorBrush}"
CornerRadius="8"
BorderThickness="2"
Grid.Row="0"
Background="{TemplateBinding Background}">
<ContentPresenter Content="{Binding}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>