gpt4 book ai didi

c# - 使用 XAML 字体系列会破坏一些 Unicode 字形

转载 作者:行者123 更新时间:2023-11-30 12:44:17 25 4
gpt4 key购买 nike

我正在尝试在没有任何特定属性的 XAML TextBlock 中显示各种 Unicode 字符:

<TextBlock Text="{Binding MyString}" Foreground="Black" />

这适用于我的 Windows 8.1 系统上的所有脚本,表情符号字符除外:

Latin OK Emoji Broken Cyrillic OK

由于这些符号在 Segoe UI Symbol 字体中可用,我只是将其添加到 FontFamily 中:

<TextBlock Text="{Binding MyString}" Foreground="Black"
FontFamily="Segoe UI Symbol" />

但是,现在一些西里尔符号被破坏了:

Latin OK Emoji OK Cyrillic Broken

所以我尝试启用几种字体,包括composite fonts listed on MSDN :

<TextBlock Text="{Binding MyString}" Foreground="Black"
FontFamily="Lucida Sans Unicode, Lucida Grande, Segoe UI Symbol,
Open Sans, Arial, Microsoft Sans Serif, Tahoma,
Courier New, Times New Roman, Global User Interface,
Portable User Interface" />

但我得到了完全相同的结果:

Latin OK Emoji OK Cyrillic Broken

我该如何解决这个问题? Global User Interface 难道不应该为所有角色提供一个不错的后备方案吗?当我未指定 FontFamily 时,我的 TextBlock 可以使用什么?

最佳答案

我终于设法修复了它。看来:

  • Segoe UI Segoe UI Symbol 所必需的。
  • Segoe UI Symbol 会弄乱一些字符,后面的字体将不会被使用;因此,它应该移到最后

下面的字符串起作用了,我所有的字形现在都被渲染了:

<TextBlock Text="{Binding MyString}" Foreground="Black"
FontFamily="Segoe UI, Lucida Sans Unicode, Lucida Grande,
Open Sans, Arial, Microsoft Sans Serif, Tahoma,
Courier New, Times New Roman, Global User Interface,
Portable User Interface, Segoe UI Symbol" />

关于c# - 使用 XAML 字体系列会破坏一些 Unicode 字形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28965156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com