WINUI 3 将字体应用于所有控件

问题描述 投票:0回答:2

我想更改 WinUI 3 应用程序中的字体。到处都是。我在这里找到了一些答案,但它们似乎都将字体应用于目标,如

TextBlock
Button
等。我要设计的应用程序有许多不同的控件。

在 CSS 中我只需做类似的事情

* {
  font-family: Verdana;
}

有没有办法在 WinUI 3 中实现类似的功能?在一处指定默认字体名称,而不命名应用程序中使用的所有可能的控件?


编辑:尝试@Andrew KeepCoding方法后,它有效,但不适用于所有控件:

xaml fonts winui-3
2个回答
0
投票

覆盖

ContentControlThemeFontFamily
应该有效:

<Application
    x:Class="App16.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App16">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
                <!-- Other merged dictionaries here -->
            </ResourceDictionary.MergedDictionaries>
            <!-- Other app resources here -->
            <FontFamily x:Key="ContentControlThemeFontFamily">Courier New</FontFamily>
        </ResourceDictionary>
    </Application.Resources>
</Application>

0
投票

WinUI 3 使用以下 FontFamily,因此您必须覆盖以下字体。您已经覆盖了

ContentControlThemeFontFamily
,所以尝试其他的

 <FontFamily x:Key="ContentControlThemeFontFamily">XamlAutoFontFamily</FontFamily>
            <FontFamily x:Key="MTCMediaFontFamily">XamlAutoFontFamily</FontFamily>
            <FontFamily x:Key="PhoneFontFamilyNormal">Segoe WP</FontFamily>
            <FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP SemiLight</FontFamily>
            <FontFamily x:Key="PivotHeaderItemFontFamily">XamlAutoFontFamily</FontFamily>
            <FontFamily x:Key="PivotTitleFontFamily">XamlAutoFontFamily</FontFamily>
            <FontFamily x:Key="SymbolThemeFontFamily">Segoe Fluent Icons,Segoe MDL2 Assets</FontFamily>
            <FontFamily x:Key="KeyTipFontFamily">XamlAutoFontFamily</FontFamily>

你也可以像这样覆盖特定的控件,所以你不需要覆盖上面的字体:

<Style TargetType="TextBlock">
  <Setter Property="FontFamily" Value="{StaticResource myFont}"/>
</Style>
© www.soinside.com 2019 - 2024. All rights reserved.