我有以下风格(为简洁起见),并有一些基于它的问题。据我了解,如果 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>