首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换程序在绑定后返回Segoe MDL2图标不工作

转换程序在绑定后返回Segoe MDL2图标不工作
EN

Stack Overflow用户
提问于 2015-08-26 03:42:15
回答 2查看 2.8K关注 0票数 7

我正在尝试将PlayerFramework.MediaPlayer.CanPause属性绑定到我的windows 10通用应用程序中的按钮。这使用默认字体,但是当我切换到Segoe MDL2以获得那些漂亮的图标时,按钮会显示垃圾。

代码语言:javascript
复制
<mmppf:MediaPlayer x:Name="mediaElement">

...

<Button Name="btnPlay" 
        Style="{StaticResource transportStyle}"  Content="{Binding CanPause, ElementName=mediaElement, Converter={StaticResource CanPauseToPlayPauseConverter}}"/>

这是来自转换器的:

代码语言:javascript
复制
public object Convert(object value, Type targetType, object parameter, string language)
    {
        bool canPause = (bool)value;
        if (canPause)
            return @"&#xE769;";
        // "play"
        return "&#xE102;";
    }

从按钮样式...and这一点:

代码语言:javascript
复制
<Style x:Name="transportStyle"  TargetType="Button">
       <!-- <Setter Property="FontFamily" Value="Segoe MDL2 Assets" />-->
</Style>

禁用Setter属性后,按钮显示期望值

代码语言:javascript
复制
&#xE102;

它直接设置为按钮内容,显示播放符号。

知道为什么这不管用吗?

编辑:从字符表复制字符并返回它是有效的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-26 08:00:13

&#xE102;是XML中的unicode字符转义序列(因此在XAML中也是如此)。在C#中,它被写成\uE102

因此,转换器应该返回具有正确的C# unicode字符转义序列的字符串(或字符):

代码语言:javascript
复制
public object Convert(object value, Type targetType, object parameter, string language)
{
    return (bool)value ? "\uE769" : "\uE102";
}
票数 16
EN

Stack Overflow用户

发布于 2015-08-26 04:01:37

您必须返回一个字符,而不是字符串:

代码语言:javascript
复制
public object Convert(object value, Type targetType, object parameter, string language)
    {
        bool canPause = (bool)value;
        if (canPause)
            return '\xE769';
        // "play"
        return '\xE102';
    }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32217622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档