如何在我的应用程序中使用自定义字体而不将每个元素的字体系列设置为静态资源?

时间:2017-01-06 17:14:21

标签: c# xaml windows-8.1-universal

我正在制作适用于桌面的Windows 8.1 Universal应用程序,客户端坚持要求我们使用Gotham字体。我们正在使用ttf版本的字体,我将它放在/ Assets / Fonts /文件夹中自己的“Gotham”文件夹中。我需要“打包”这个字体并在应用程序的每个部分使用它,这样即使客户端的设备没有在他们的系统上安装字体,它也能正常工作。

根据我的研究,我只能找到在App.xaml页面的资源字典中将字体系列设置为主题资源的选项,然后为使用它的EACH页面元素调用它。

FontFamily="ms-appx:///Assets/Fonts/Gotham/Gotham-...ttf#Gotham"

...是“大胆”或“光明”等)

我的主管真的不喜欢这种方法,并希望能够使用FontWeight来获得权重,他希望能够在app.xaml中设置字体系列。目前我这样设置:

<Application
    x:Class="UndisclosedAppNameHere.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UndisclosedAppNameHere">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.ThemeDictionaries>
                <ResourceDictionary x:Key="Default">
                    <FontFamily x:Key="GothamFontFamily">
                        pack://application:,,,/Assets/Fonts/Gotham/Gotham.ttf#Gotham
                    </FontFamily>
                </ResourceDictionary>
            </ResourceDictionary.ThemeDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

这样做的正确方法是什么?是将每个元素的字体系列设置为唯一的方式,还是按照我的意愿完成?

谢谢你,
扎克

0 个答案:

没有答案