在XAML到Text中绑定字体很棒的字符

时间:2013-10-24 21:59:08

标签: silverlight windows-phone-7 font-awesome

我有一个TextBlock,我试图将文本绑定到一个字体 - 真棒字符用作复选框。我有一个返回字符串的属性,但似乎有些东西将它转换为字符串而不是字符。

这可以工作并绘制一个复选框:

<TextBlock Text="&#xf096;" FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" />

这种组合不会:

public class myObject 
{
    public string MyString
    {
        get { return "&#xf096;" }
    }
}

<TextBlock Text{Binding MyString} FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" />

相反,它会绘制实际字符串(使用#xf096;等),就像它被转义一样。

任何想法为何或如何使其返回不带引号的角色?

谢谢!

2 个答案:

答案 0 :(得分:11)

看起来您的目标可以使用unicode转义序列来实现:

public class myObject 
{
   public string MyString
   {
      get { return "\uf096"; }
   }
}

<TextBlock Text="{Binding MyString}" FontFamily="../Resources/fontawesome-webfont.ttf#FontAwesome" />

然后即使由Binding提供,也会处理字符串。 我在桌面上测试了它,但我认为这应该在手机版本上也能正常工作。

答案 1 :(得分:0)

好吧,我不确定这是不是这个原因,但你的TextBlock应该是Text="{Binding MyString}"(你错过了引号和等号),你也应该确保用于页面/控件的DataContext /设置为MyObject类实例的任何内容,以便可以拾取它。最后,如果您打算更新绑定,您的属性可能需要实现INotifyPropertyChanged。