如何为一个控件定义多种样式?

Ben*_*der 3 wpf xaml

我正在尝试在一个按钮中设置多种样式,特别是我:

风格 (1) =>Style="{StaticResource VisibleAnimation}"
风格 (2) =>Style="{DynamicResource AccentedSquareButtonStyle}"

一个伪代码:

<Button Content="Invia" Style="{DynamicResource AccentedSquareButtonStyle, VisibleAnimation}" ></Button>
Run Code Online (Sandbox Code Playgroud)

编辑:合并的可能解决方案

<Style TargetType="FrameworkElement" x:Key="VisibleAnimation" BasedOn="{DynamicResource AccentedSquareButtonStyle}">
Run Code Online (Sandbox Code Playgroud)

编译器在 BaseOn 行下划线并显示我:

无法根据类型样式设置 DynamicResourceExtension 的属性。您只能为 DependencyObject 的依赖属性设置 DynamicResourceExtension。

我怎么能做到这一点?

Sam*_*Dev 6

您可以创建Style1 basedon Style2或反之亦然,然后将顶级style应用于您的button,

<Window.Resources>
<Style TargetType="Button" x:Key="Style1">
    <Setter Property="VerticalAlignment" Value="Center"/>
    <Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style TargetType="Button" x:Key="Style2" BasedOn="{StaticResource Style1}">
    <Setter Property="Background" Value="Green"/>
</Style>
Run Code Online (Sandbox Code Playgroud)


但是,如果您不想更改任何两种样式(例如它们在其他地方使用),请按照此博客文章扩展您的按钮样式。