2013-05-06 24 views
6

Voglio usare font fantastico (http://fortawesome.github.io/Font-Awesome/design.html) in XAML.XAML TextBlock imposta i caratteri speciali a livello di programmazione?

sono stato in grado di ottenere facilmente farlo funzionare tramite XAML diretta, con la creazione di una cartella dei font e aggiungendo il carattere c'è, poi in XAML:

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

visualizza un'icona bicchiere di martini.

Tuttavia, quando si aggiunge a livello di codice semplicemente mostra e il simbolo non valida in questo modo: [], ho provato la seguente:

XAML:

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

C#:

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

e il seguente che restituisce la stringa letterale:

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

Qualche idea?

risposta

4

provare quanto segue:

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 

e se si desidera visualizzare in anteprima l'utilizzo da XAML TextBlock

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

L'URI sembrava avere il lavoro, ho avuto il tipo di carattere in due progetti separati, in modo che wasn non li ho localizzati inizialmente in una parte, ma dopo aver duplicato il font sembra aver funzionato. Grazie. – Andrew

Problemi correlati