【问题标题】:Color Emoji support in Winforms/WPF application?Winforms/WPF 应用程序中的彩色表情符号支持?
【发布时间】:2014-06-04 02:17:33
【问题描述】:

我想构建一个支持 Windows 8.1 的彩色表情符号的 Windows 应用程序。我似乎在任何地方都找不到实际陈述,但似乎是这样,除非您正在构建“Windows Store”应用程序,否则这是不可能的,这当然需要付费的开发人员许可证。天哪,iOS 开发又来了!

那么无论如何,有没有一种方法可以在 WinForms 或 WPF 中进行开发,从而在 Windows 8.1 上运行时允许使用彩色表情符号?

【问题讨论】:

  • 彩色字形可以在 Segoe UI Emoji 系列中找到。如果未将其设置为桌面应用程序的后备选项,请查看将 FontFamily 设置为该选项是否适用于 WPF。
  • 这适用于黑白字形,但仍不显示新的彩色字形。
  • 嗯。黑白字形在 Segoe UI 中 - 至少在 Windows 7 上 - 除非 Windows 坚持在桌面上显示这些字形而不是彩色字形,即使使用 Emoji 变体也是如此。
  • 获得彩色表情符号支持需要针对 DirectWrite api 和 Windows 8。Winforms 和 WPF 都没有公开它。 DirectWrite 是由数十名程序员组成的 UI 团队使用 C++ 编写的 API。使用友好的类库的责任是你坚持它愿意支持的东西。其中不变的是需要最新操作系统版本的前沿功能。如果 WPF 团队再次醒来,也许有一天。
  • @SepehrM 我对与 WPF 的互操作知之甚少,无法写出真正的答案,但如果您可以渲染单个 DWRITE_GLYPH_RUN,那么在 Windows 8.1 上,您可以调用 TranslateColorGlyphRun 将原始字形分解为多层不同颜色(每一个矢量字形运行)。例如gist.github.com/makotokato/9458865

标签: c# .net wpf winforms emoji


【解决方案1】:

从 .NET 4.6.1 开始,您不能开箱即用。彩色表情符号在 WPF 中不起作用。他们在 XAML 通用 Windows 应用程序上执行,但 WPF 特别是他们没有。

您现在唯一的解决方案是进行一些 UI 层处理,为您希望以彩色显示的每个表情符号插入您选择的图像。这是一个糟糕的过程,但你现在只有这些。

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 2020-07-04
    • 2019-02-13
    • 1970-01-01
    • 2021-12-20
    • 2020-11-03
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多