Silverlight 4和隐式造型

时间:2010-03-02 14:30:00

标签: silverlight silverlight-4.0

在Silverlight 4中,可以使用隐式样式 - 这太棒了!但是,如果我想将样式应用于我的所有Buttons,CheckBoxes和RadioButtons(所有都继承自ButtonBase),该怎么办?我无法在Style到ButtonBase上设置TargetType - 这不起作用。我是否需要为3种控件类型中的每一种创建样式?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

xamlgeek,

以下隐式样式对我很有用。我首先创建一些名称/键控样式,尽可能使用常见的BasedOn样式。然后我简单地创建隐式样式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