13

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

我在共享项目中创建了一个“字体”文件夹,我将带有属性构建操作的字体文件添加到“内容”。

我还在共享项目中创建了一个“主题”文件夹,并向其中添加了一个 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 手机应用程序。所有这一切都很好,因为它与颜色资源配合得很好。

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

4

2 回答 2

15

你做得很好,除了字体名称('#'之后的部分)。它似乎是 Rex,而不是 Rex Bold。

<FontFamily x:Key="RexBoldFontFamily">/Fonts/Rex Bold.otf#Rex</FontFamily>
于 2014-05-31T22:49:51.267 回答
3

在您的 xaml 中使用此代码

<TextBlock x:Name="txtblk" HorizontalAlignment="Left" TextWrapping="Wrap" FontFamily="Assets/filename.ttf#Font Name"/>
于 2015-06-21T11:49:29.317 回答