【问题标题】:Segoe UI Symbol emoji character not displaying in colour on Windows Phone 8.1Segoe UI Symbol emoji 字符在 Windows Phone 8.1 上不显示颜色
【发布时间】:2014-07-23 13:09:37
【问题描述】:

在 Windows Phone 8 上,以下 xaml 以彩色显示表情符号:

<TextBlock 
    FontFamily="Segoe UI Symbol"
    TextOptions.DisplayColorEmoji="True"
    Text="smilie's unicode that I don't have off-hand"/>

但是,当此代码在 Windows Phone 8.1 上运行时,表情符号的背景颜色是未填充的。也就是说,它没有黄色背景;表情符号的轮廓只有彩色。

例如,它在 Windows Phone 8.0 中看起来像这样:

但在 Windows Phone 8.1 中看起来像这样:

我见过 Windows Phone 8.1。引入了一个新的“IsColorFontEnabled”属性。我不知道这是否在 8.1 上修复了它,但我知道为了使用它,我必须将应用程序迁移到 8.1,我不想这样做,因为我想暂时保持 8.0 的向后兼容性。

那么,有没有办法让 Windows Phone 8.0 Silverlight 应用程序使用彩色表情符号,同时在 Windows Phone 8.1 上也以彩色显示它?

【问题讨论】:

    标签: c# windows-phone-8 colors character winrt-xaml


    【解决方案1】:

    在 Windows Phone 8.1 中,我们可以在 TextBlock 中使用 IsColorFontEnabled 来显示带有颜色的表情符号。 IsColorFontEnabled 是布尔类型,默认值为 false(表示不显示颜色)。但如果你设置FontFamily="Segoe UI Symbol",,彩色表情符号也不显示

    示例代码如下:

    <TextBlock IsColorFontEnabled ="True" Text="I am a TextBlock ?"/>
    

    如果您不想将项目重新定位到 Windows Phone 8.1,只需删除 FontFamily="Segoe UI Symbol" ,如下所示:

    <TextBlock TextOptions.DisplayColorEmoji="True" Text="I am a TextBlock ?"/>
    

    因为如果你将fontfamily设置为Segoe UI Symbol,表情符号会显示为character

    【讨论】:

    • 是的,但我希望 xaml 也能在 Windows Phone 8.0 中工作。仅当我将我的应用程序重新定位到 Windows Phone 8.1 时,该属性才可用。我想要一个同时适用于 8.0 和 8.1 的解决方案。
    • 感谢您的澄清。但是,如果我删除 FontFamily,如何确保使用的字体是“Segoe UI Symbol”?通过将其设置为 TextBlock 父级的 FontFamily?
    • 您可以在 TextBlock 中使用 Run。没有字体家族设置的表情符号,其他字体家族为“Segoe UI Symbol”的字符
    • 没有 FontFamily,但使用我所追求的 Segoe UI 符号的 unicode 将在 WP 8.0 和 WP 8.1 上正确显示它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 2018-04-04
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    相关资源
    最近更新 更多