我想更改 WinUI 3 应用程序中的字体。到处都是。我在这里找到了一些答案,但它们似乎都将字体应用于目标,如
TextBlock
、Button
等。我要设计的应用程序有许多不同的控件。
在 CSS 中我只需做类似的事情
* {
font-family: Verdana;
}
有没有办法在 WinUI 3 中实现类似的功能?在一处指定默认字体名称,而不命名应用程序中使用的所有可能的控件?
编辑:尝试@Andrew KeepCoding方法后,它有效,但不适用于所有控件:
覆盖
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>
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>