【发布时间】:2010-03-02 14:29:59
【问题描述】:
在 Silverlight 4 中,可以使用隐式样式 - 这太棒了!但是,如果我想为我的所有按钮、复选框和单选按钮(都继承自 ButtonBase)应用一种样式怎么办?我无法将 Style 上的 TargetType 设置为 ButtonBase - 这不起作用。我需要为这 3 种控件类型中的每一种都创建一个样式吗?
【问题讨论】:
标签: silverlight silverlight-4.0
在 Silverlight 4 中,可以使用隐式样式 - 这太棒了!但是,如果我想为我的所有按钮、复选框和单选按钮(都继承自 ButtonBase)应用一种样式怎么办?我无法将 Style 上的 TargetType 设置为 ButtonBase - 这不起作用。我需要为这 3 种控件类型中的每一种都创建一个样式吗?
【问题讨论】:
标签: silverlight silverlight-4.0
【讨论】:
xamlgeek,
以下隐式样式对我很有效。我首先创建一些名称/键控样式,尽可能使用常见的 BasedOn 样式。然后我简单地创建基于那些命名/键控样式的隐式样式...
<Style x:Key="BaseStyle" TargetType="Control">
<Setter Property="FontFamily" Value="{StaticResource FontFamily}" />
<Setter Property="FontSize" Value="{StaticResource FontSize}" />
<Setter Property="Foreground" Value="{StaticResource FontBrush}" />
</Style>
<Style x:Key="BaseStyleCentered" TargetType="Control" BasedOn="{StaticResource BaseStyle}">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="CommonCheckBox" TargetType="CheckBox" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
</Style>
<Style x:Key="CommonRadioButton" TargetType="RadioButton" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
</Style>
<Style x:Key="CommonButton" TargetType="Button" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Padding" Value="10,0,10,0" />
<Setter Property="MinWidth" Value="{StaticResource ButtonWidth}" />
<Setter Property="MinHeight" Value="{StaticResource ButtonHeight}" />
</Style>
<Style TargetType="CheckBox" BasedOn="{StaticResource CommonCheckBox}">
</Style>
<Style TargetType="RadioButton" BasedOn="{StaticResource CommonRadioButton}">
</Style>
<Style TargetType="Button" BasedOn="{StaticResource CommonButton}">
</Style>
祝你好运,
吉姆
YinYangMe、YinYangMoney 和 FaceToFaceSoftware
【讨论】: