私は次のスタイル (簡潔にするために削除) を持っており、それに基づいていくつか質問があります。私の理解では、ControlTemplate が Style の基になっているコントロールのビジュアル ツリー全体を置き換える場合、プロパティ Setters にはどのような効果がありますか?
この例では、FontSize、Margin、Height などのプロパティ Setters は、CheckBox 自体のそれぞれのプロパティに対応していませんか? コントロールの Template プロパティを置き換える場合、CheckBox がデフォルトの外観をレンダリングしなくなった場合、これらの Setter は何に対応しますか?
<Style x:Key="KeyName" TargetType="CheckBox">
<Setter Property="FontSize" Value="11" />
<Setter Property="Margin" Value="0 0 1 0" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="18" />
... common property setters etc.
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Border>
<StackPanel>
<Ellipse Name="Ellipse" Width="7" Height="7" />
<ContentPresenter Content="{TemplateBinding Content}" />
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.Setters>
<Setter Property="Foreground" Value="WhiteSmoke" />
</Trigger.Setters>
</Trigger>
... custom triggers etc ...
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>