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

C# 如何在应用程序中使用自定义字体,而不将每个元素的字体系列设置为静态资源?,c#,xaml,windows-8.1-universal,C#,Xaml,Windows 8.1 Universal,我正在制作一个Windows 8.1通用桌面应用程序,客户坚持我们使用Gotham字体。我们使用的是ttf版本的字体,我把它放在/Assets/Fonts/文件夹中自己的“Gotham”文件夹中。我需要“打包”这种字体,并在应用程序的每个部分使用它,这样即使客户端设备的系统上没有安装这种字体,它也能工作 根据我的研究,我只能在App.xaml页面的资源字典中将字体系列设置为主题资源,然后为使用它的每个页面元素调用它 FontFamily="ms-appx:///Assets/Fonts/Goth

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

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

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>

pack://application:,,,/Assets/font/Gotham/Gotham.ttf#Gotham
正确的方法是什么?为每个元素设置字体系列是唯一的方法,还是可以按照我的意愿进行

谢谢你,

扎克

如果你否决了我的问题,请解释我能做些什么来改进它。我试图弄清楚我的问题。我也不知道为什么它被否决了;在我看来,这是一个很好的问题。如果你否决了我的问题,请解释我能做些什么来改进它。我试图弄清楚我的问题。我也不知道为什么它被否决了;在我看来,这是一个伟大的问题。