Winforms/WPF应用程序支持彩色表情符号吗?

16

我想开发一个Windows应用程序,支持Windows 8.1的彩色表情符号。但我似乎找不到官方声明,但似乎这只有在构建“Windows商店”应用程序时才可能实现,而这当然需要付费开发者许可证。哦,这又是iOS开发!

那么,无论是WinForms还是WPF,是否有一种开发方式可以在运行于Windows 8.1上时允许使用彩色表情符号呢?


2
获取彩色表情符号支持需要针对DirectWrite API和Windows 8进行目标设置。Winforms和WPF都没有公开它。DirectWrite是一种UI团队使用C++针对数十个程序员的API。使用友好的类库的缺点是你被限制于它愿意支持的内容,这通常不包括需要最新操作系统版本的前沿功能。也许有一天,如果WPF团队再次醒来的话。 - Hans Passant
这个问题可以重新讨论吗?在WPF应用程序中获取彩色表情符号仍然是不可能的吗? - Julien
@SepehrM 我建议你将其作为一个新问题发布,但我仍然会在这里回答。据我所知,在苹果和安卓设备上,表情符号字形是嵌入字体中的PNG格式,因此不是基于矢量的。我相信Windows 8.1使用基于矢量的字形,但我不确定。我最好的建议是使用不同分辨率的每个表情符号的多个版本,并在字体大小更改时在它们之间进行切换,或者查看是否可以在WPF中使用基于矢量的图像格式,例如SVG(我从未尝试过,所以无法提供帮助)。 - Amazingant
@SepehrM 这不是一个完美的解决方案,但在iOS和OS X上使用每个表情符号的多个版本似乎足够好,因此经过一些努力,我认为你可以使其看起来令人满意。 - Amazingant
2
@SepehrM 我对与WPF的交互不够了解,无法给出真正的答案。但是如果您可以渲染单个DWRITE_GLYPH_RUN,则在Windows 8.1上,您可以调用TranslateColorGlyphRun将原始字形运行分解为多个不同颜色的层(每个都是矢量字形运行)。例如:https://gist.github.com/makotokato/9458865 - Dwayne Robinson
显示剩余7条评论
2个回答

6
截至 .NET 4.6.1 版本,你不能直接在 WPF 中使用彩色表情符号。它们可以在 XAML 通用 Windows 应用程序中使用,但是在 WPF 中不能。目前唯一的解决方案是进行一些 UI 层处理,为每个要显示彩色表情符号的位置插入所选图像。这是一个繁琐的过程,但目前只有这种方法可行。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接