如何更改 WinUI 应用程序的默认字体?

Posted

技术标签:

【中文标题】如何更改 WinUI 应用程序的默认字体?【英文标题】:How do I change the default font of my WinUI application? 【发布时间】:2022-01-19 02:32:12 【问题描述】:

我在 Microsoft 网站或 winui github 上找不到任何指导。我正在开发一个 WinUI 3 应用程序,并且以前曾在 WPF 上工作过。我尝试使用 WPF 方法在***别为我的应用程序设置默认 FontFamily,但它似乎不起作用。

例如,在 WPF 中,我会将 FontFamily 作为资源包含在 App.xaml.cs 文件中。

<ResourceDictionary>
    <FontFamily x:Key="MyCustomFont">pack://application:,,,/MyAssembly;component/Fonts/#CustomFontName</FontFamily
    <ResourceDictionary.MergedDictionaries>
        <!-- Removed for brevity -->
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

然后我会在我的窗口中相应地设置它,所有文本块等都会更改为我的自定义字体:

<Window FontFamily="StaticResource MyCustomFont">

我尝试在 WinUI 中做同样的事情,但 Window 上不再有 FontFamily 依赖属性,所以我不知道该怎么做。

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

在进一步挖掘在线帮助后,我发现了一个适用于 WinUI 应用程序的策略。

将以下内容添加到您的 App.xaml.cs,您的自定义字体现在将成为所有窗口和页面的默认字体。

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
            <!-- Other merged dictionaries here -->
        </ResourceDictionary.MergedDictionaries>
        <!-- Other app resources here -->
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Default">
                <FontFamily x:Key="MyCustomFont">ms-appx:///MyOtherAssembly/Subfolder/fontfile.ttf#MyCustomName</FontFamily>
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

【讨论】:

有没有关于这个的官方 msft 文档?

以上是关于如何更改 WinUI 应用程序的默认字体?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Emacs 的默认字体大小和字体类型?

如何更改 MS Access 2016 中的默认数据表字体?

如何更改 Bootstrap 的全局默认字体大小?

如何在 Eclipse 中更改 Python 代码的默认字体?

如何更改 Swing GTK LookAndFeel 中的默认字体大小?

如何更改ggplot2中的默认字体大小