c# - 如何在 Windows 通用应用程序中使用自定义字体?

标签 c# xaml fonts windows-phone-8.1 win-universal-app

就像我的其他 Windows Phone 8 项目一样,我想使用自定义字体。但对于新的通用应用程序架构,我很难将其落实到位。

我在共享项目中创建了一个“Fonts”文件夹,我将具有 Build Action 属性的字体文件添加到“Content”。

我还在共享项目中创建了一个“Themes”文件夹,并向其中添加了一个 ResourceDictionnary(“Generic.xaml”)。

我添加了一个 FontFamily 资源:

<FontFamily x:Key="RexBoldFontFamily">/Fonts/Rex Bold.otf#Rex Bold</FontFamily>

我在 App.xaml 中这样引用它:

<Application.Resources>

    <ResourceDictionary>

        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/Generic.xaml"/>
        </ResourceDictionary.MergedDictionaries>

        <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="true" />

    </ResourceDictionary>

</Application.Resources>

在我的 Windows Phone 项目的 MainPage.xaml 中,我尝试这样使用它:

<TextBlock Text="{Binding HelloWorld}" Foreground="{ThemeResource RedBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="{StaticResource RexBoldFontFamily}" FontSize="22"/>

我确定这是字体的名称,因为它适用于我的一个 Windows Phone 应用程序。所有这一切都很好地连接起来,因为它与颜色资源配合得很好。

任何人都成功分享字体并使用它,

最佳答案

除了字体名称('#' 之后的部分)外,您做的一切都很好。好像是Rex,不是Rex Bold。

<FontFamily x:Key="RexBoldFontFamily">/Fonts/Rex Bold.otf#Rex</FontFamily>

关于c# - 如何在 Windows 通用应用程序中使用自定义字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971356/

相关文章:

xaml - Windows 8 应用程序 : Fixed button width: Failed to create a 'Windows.Foundation.Double' from the text '1in' ?

c# - 使用Linq循环遍历所有控件只得到第一个控件

c# - 如何在 .net 核心中使用 TimeZoneInfo.GetAdjustmentRules()?

c# - 如果一个对象具有相同的接口(interface),是否可以动态地将一个对象的内容复制到另一个对象?

wpf - 在 UserControl 中绑定(bind) ToolTip

html - 浏览器不显示字母 "fi"和 "fl"的组合

c# - 如何使用反射调用私有(private)方法?

c# - UWP - 在 TextBlock 中垂直居中文本

java - 根据屏幕尺寸变化更改字体

css - 将字体与@font-face 声明一起使用的问题以及一般应用程序的问题