使用Style.Triggers而不覆盖默认样式

时间:2018-02-08 15:14:30

标签: c# wpf xaml mahapps.metro

我正在使用 MahApps.Metro 工具包进行WPF,并且无法弄清楚如何使用自定义 Button.Style在 MetroWindow.RightWindowCommand 中创建Button 标记中包含一些触发器,而不会覆盖花哨的工具包提供的默认样式。

解决方案应该是:

<Metro:MetroWindow.RightWindowCommands>
        <Metro:WindowCommands>
            <StackPanel Orientation="Horizontal">
                <Button Command="{Binding CloseWindowCommand}">
                    <Button.Style>
                        <Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
                            <Setter Property="Content" Value="Turn off" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding ClosedPerm}" Value="True">
                                    <Setter Property="Content" Value="Turn on" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Button.Style>
                </Button>
            </StackPanel>
        </Metro:WindowCommands>
    </Metro:MetroWindow.RightWindowCommands>

然而,BasedOn =“{ StaticResource {x:Type Button} }”会给出按钮默认的Metro按钮外观,而不是Metro内部的特定外观:WindowCommands。

如何在不从源文件中复制大量代码的情况下应用默认样式的任何想法?

0 个答案:

没有答案