代码之家  ›  专栏  ›  技术社区  ›  thomasmartinsen

Silverlight 4和隐式造型

  •  3
  • thomasmartinsen  · 技术社区  · 14 年前

    在Silverlight 4中,可以使用隐式样式-这是惊人的!但是,如果我想对所有按钮、复选框和单选按钮(都继承自ButtonBase)应用样式呢?我无法将样式上的TargetType设置为ButtonBase-这不起作用。我需要为这三种控件类型分别创建一个样式吗?

    2 回复  |  直到 14 年前
        2
  •  1
  •   Jim McCurdy    14 年前

    XAMLGEKE

    下面的隐式风格对我很有用。我首先创建一些名称/键控样式,尽可能使用通用的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>
    

    祝你好运,

    吉姆

    阴阳名、阴阳钱及小品