2013-05-06 27 views
6

我想在XAML中使用字體真棒(http://fortawesome.github.io/Font-Awesome/design.html)。XAML TextBlock以編程方式設置特殊字符?

我已經能夠很容易地得到它通過直接XAML工作,通過創建一個fonts文件夾,並添加字體出現,然後在XAML:

<TextBlock FontFamily="Fonts/#FontAwesome">&#xf000;</TextBlock> 

顯示馬提尼酒杯的圖標。

然而,編程增加時,它只是顯示和像這樣無效的符號:[],我試過如下:

XAML:

<TextBlock Name="textBlock"></TextBlock> 

C#:

textBlock.FontFamily = new FontFamily("Fonts/#FontAwesome"); 
textBlock.Text = HttpUtility.HtmlDecode("&#xf000;"); 

以及它返回的文字字符串:

textBlock.FontFamily = new FontFamily("Fonts/#FontAwesome"); 
textBlock.Text = "&#xf000;"; 

任何想法?

回答

4

嘗試以下操作:

textBlock.FontFamily= new FontFamily(new Uri("pack://application:,,,/"), @"/Fonts/#FontAwesome"); // you should well reference your font else you will get a square 
textBlock.Text = "\uf000";// \u (unicode escape char) instead of &#x 

,如果你想要預覽文本塊的XAML使用

t_out.Text = XamlWriter.Save(textBlock); 
+0

的URI似乎有工作,我不得不在兩個單獨的項目的字體,所以它WASN最初不是將它們放在一個部分中,但是在我複製了字體後,這似乎奏效了。謝謝。 – Andrew 2013-05-07 15:25:07