【问题标题】:Can't get special characters to render using Open Sans font?无法使用 Open Sans 字体渲染特殊字符?
【发布时间】:2018-11-13 16:56:49
【问题描述】:

我有一个带有文本块的 UWP 应用程序,它使用 Open Sans 字体呈现字母字符。但是没有呈现正确的字符,不受支持的字符是......

关于如何让 UWP 应用程序文本块呈现正确字体的任何想法?

当我将字体安装到我的 Windows 10 机器中时,字体在记事本中正确呈现,但在我的 UWP 应用程序中却没有,它引用了相同的字体系列。

我知道我的 UWP 正在呈现正确的字体,因为我可以看到 don't 和默认字体之间的区别。正常的字母数字字符正在正确呈现。

有什么想法吗?

【问题讨论】:

  • 嗯,重现此问题的一行代码对愿意帮助您的人非常有用。
  • 您需要在文本块上使用转换器并在转换器中返回您需要的新字体,这可能会解决您的问题

标签: uwp


【解决方案1】:

我不确定你如何在你的 UWP 应用中渲染 Open Sans 字体,我建议你将自定义字体文件(.ttf 等)添加到 Assets 文件夹中,然后使用 FontFamily 属性设置字体:

<TextBlock
    FontFamily="ms-appx:///Assets/OpenSans-Bold.ttf#Open Sans"
    FontSize="36" 
    Text="Hello, this is OpenSans-Bold Style"/>
<TextBlock
    FontFamily="ms-appx:///Assets/OpenSans-BoldItalic.ttf#Open Sans"
    FontSize="36" 
    Text="Hello, this is OpenSans-BoldItalic Style" />
<TextBlock
    FontFamily="ms-appx:///Assets/OpenSans-ExtraBold.ttf#Open Sans"
    FontSize="36" 
    Text="Hello, this is OpenSans-ExtraBold Style" />
<TextBlock
    FontFamily="ms-appx:///Assets/OpenSans-Light.ttf#Open Sans"
    FontSize="36" 
    Text="Hello, this is OpenSans-Light Style" />

FontFamily 格式类似于 [FontFilePath]#[FontName],注意我的测试中 FontName 必须是“Open Sans”。

你也可以在后面的代码中设置:

MyTextBlock.FontFamily = new FontFamily("/Assets/OpenSans-Light.ttf#Open Sans");

-------------编辑-------------------------------- --------------------------

请提供一些代码和屏幕截图以获取更多详细信息,我在这里误解了什么吗?什么特定的字符在这里不起作用?你的意思是像“β”这样不起作用的东西吗?

【讨论】:

  • 是的,我正在这样做 ;) 但它不会呈现特殊字符
  • @visc 我对答案进行了一些编辑。你能检查一下我的理解是否正确吗?
猜你喜欢
  • 2017-01-13
  • 2013-10-17
  • 2016-09-13
  • 2016-12-29
  • 2016-08-08
  • 1970-01-01
  • 2013-09-19
  • 2014-05-19
  • 2020-02-18
相关资源
最近更新 更多