【问题标题】:Font not rendering properly on WPF desktop application字体无法在 WPF 桌面应用程序上正确呈现
【发布时间】:2013-11-18 11:14:35
【问题描述】:

我的项目中有一个自定义字体。但是 WPF 没有正确渲染它。

<TextBlock Text="This is a test sentence" 
       Foreground="Black" FontSize="50"   
       FontFamily="Assets/Fonts/#Custom Font"/>

现在我有两个字体文件名为:

Custom Font Medium Italic.ttf
Custom Font Bold Extended Italic.ttf

当我打开这两个文件时,显示的字体名称仅为自定义字体。在上面的文本块中,如果我使用完整的文件名,即 Custom Font Medium Italic.ttf,它不起作用。那么如何在文本块中以不同的方式使用这些字体。

【问题讨论】:

  • 渲染不正确是什么意思?扭曲?一点也不?字形错误?倒挂?希腊语而不是英语?
  • 文本不是同一种字体。就像它没有使用我在 Windows.Resources 中定义的同一个字体系列

标签: wpf


【解决方案1】:

您需要引用字体的名称,而不是字体文件的名称。我认为您还需要添加一个'#' 字符......试试这样的:

<FontFamily x:Key="testfont">Assets/Fonts#Custom Font Bold Italic</FontFamily>

来自 MSDN 上的FontFamily Class 页面:

XAML 值

fontFamilyFolderReference

一个字符串,指定包含字体的文件夹以及字体系列名称。文件夹和字体系列名称由 # 字符分隔。文件夹引用可以是绝对的或相对的。例如,“自定义字体#我的自定义字体”。

【讨论】:

  • 但字体名称是一样的,当我打开 ttf 文件时。那你有什么建议呢?
  • 我不明白...字体名称和什么一样?它与文件名相同,因为文件名有文件扩展名而字体名没有。
【解决方案2】:

您可以将字体文件放到不同的文件夹中。例如

  • /Resources/Font/Medium/Custom Font Medium Italic.ttf
  • /Resources/Font/Bold_Extended/Custom Font Bold Extended Italic.ttf

那么它们可以单独引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多