如何在特定 Grid.Resources 中为 Application.Resources 样式设置例外

How to make an exception for Application.Resources style in a specific Grid.Resources

我正在为自己开发小型 WPF 应用程序,在此特定项目中使用 Visual Studio、C#、.NET Standard 和 WPF。

我已经为 Applications.Resources 中的所有 TextBlock 和 TextBox 定义了样式,如下所示。

<Application.Resources>
    <Style TargetType="TextBox">
        <Setter Property="FontSize" Value="10"/>
    </Style>
    <Style TargetType="TextBlock">
        <Setter Property="FontSize" Value="10"/>
    </Style>
</Application.Resources>

然后在主要 window 我有一个包含一些按钮的网格。

<Grid>
    <Grid.Resources>
        <Style TargetType="Button">
            <Setter Property="FontSize" Value="50" />
        </Style>
        <Style TargetType="TextBlock">
            <Setter Property="FontSize" Value="50"/>
        </Style>
    </Grid.Resources>
    <Button Grid.Column="0" Content="DASHBOARD" Command="local:CustomCommands.ShowDashboard"/>
</Grid>

我想为这个特定按钮中的 textblocks/textboxes 设置更宽的字体。

我尝试了很多不同的语法但无法处理。我也尝试在 Grid.Resources 中为这种样式定义 x:Key 并在这个特定的 Button 控件中使用它。这也行不通。

任何人都可以让我知道我应该通过哪种方式让我的应用程序知道此按钮中的文本具有更大的字体大小?

Button 模板内的 ContentPresenter 为字符串内容创建的 TextBlock 不应用本地定义的资源,即您的 Grid 中的资源。

解决问题的最简单方法是明确定义一个 TextBlock 作为按钮的内容。

<Grid>
    <Grid.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="FontSize" Value="50"/>
        </Style>
    </Grid.Resources>
    <Button Grid.Column="0" Command="local:CustomCommands.ShowDashboard">
        <TextBlock Text="DASHBOARD" />
    </Button>
</Grid>