0

为了最小化 WPF 中的代码行,我的所有控件都继承自一个名为 BaseControlStyle 的样式,它看起来像这样:

<Style x:Key="BaseControlStyle" TargetType="{x:Type FrameworkElement}">
    <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Opacity" Value="0.5"/>
        </Trigger>
    </Style.Triggers>
</Style>

新的按钮样式如下所示:

<Style x:Key="ButtonStyle" TargetType={x:Type Button} BasedOn="{StaticResource BaseControlStyle}">
....
</Style>

但是作为 Silverlight 的新手,我找不到答案是否可以将此 BaseControlStyle 转移到使用 VisualStateManager (或其他东西)的 SilverlightBaseControlStyle 中?

4

2 回答 2

2

不幸的是,silverlight 不支持这种类型的使用:

BasedOn="{StaticResource {x:Type Button}}"
于 2012-04-26T08:55:40.710 回答
0

不幸的是,Silverlight 中没有属性触发器之类的东西 - 而是使用视觉状态,这意味着处理代码中的外观。对于您的情况,创建标准按钮样式的副本并更改其默认 ControlTemplate 中的动画会更容易。有时使用行为也很有用。

于 2012-04-26T08:53:09.427 回答