在 XAML 中更改应用程序范围的样式

Change application wide style in XAML

我的整个应用程序都有一个按钮样式,如下所示:

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
some style code here
</Style>

它确实影响了像这样使用的每个按钮:

<Button />

但是当我想像这样改变一个特定的按钮时:

<Button>
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeBoolean}" Value="false">
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

它是 windows 标准样式。

您缺少 BasedOn 属性:

<Button>
    <Button.Style>
        <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeBoolean}" Value="false">
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>