まず、次のように、アプリケーション リソースのリソースとしてスタイルがあります。
<Style x:Key="ContentTextBlock" TargetType="FrameworkElement">
<Setter Property="TextBlock.HorizontalAlignment" Value="Center"/>
<Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
<Setter Property="TextBlock.FontFamily" Value="Verdana"/>
<Setter Property="TextBlock.FontSize" Value="12"/>
<Setter Property="TextBlock.FontWeight" Value="Normal"/>
<Setter Property="TextBlock.Foreground" Value="Orange"/>
</Style>
ヘッダーとコンテンツを含むカスタム コントロールを作成しました。カスタム コントロール テンプレートのコンテンツ セクションは次のようになります。
<ContentPresenter Content="{TemplateBinding Content}"
Style="{DynamicResource ContentTextBlock}">
</ContentPresenter>
私の問題は、作成したコントロールを次のように使用する場合です。
<local:CutPage.Content>
<TextBlock>Header</TextBlock>
</local:CutPage.Content>
Fontsize、FontWeight、および FontFamily は、TextBlock の明示的なスタイルまたはデフォルトのスタイルによってオーバーライドされます (そのように思われますが、よくわかりません)。依存関係の値の順序と優先順位に関する記事を読みましたが、テンプレート スタイルをオーバーライドしているものをどのように推測できますか? カスタム コントロールに入るすべてのヘッダー要素がこれらの値を使用するようにします。どうすればいいですか?
PS 興味深いのは、一部のスタイル セッターは動作することです (テキストを垂直および水平方向に中央揃えするなど) が、他のスタイル セッターは機能しません。