AntonioPelleriti.it [aka z9]

I code, therefore I am

NAVIGATION - SEARCH

Custom Fonts in applicazioni Windows 8 Metro

Anche se esistono delle guidelines ufficiali di Microsoft per l'utilizzo e la scelta dei font nelle applicazioni Windows 8 Store, un mio cliente mi ha chiesto di utilizzare i loro font ufficiali!

Ok, nessun problema, ho pensato in un primo momento, apro Blend, aggiungo i miei file ttf, e poi con il Font Manager utilizzo i caratteri nella mia app, come facevo ai bei tempi di Silverlight.

Purtroppo Blend for Microsoft Visual Studio 2012, non permette di utilizzare il Font Manager in applicazioni Metro, l'opzione risulta disabilitata, e quindi provo a fare l'embedding dei font manualmente.

Basta copiare i file ttf nel progetto, impostare la Build Action a Content, e poi utilizzare il font indicando il percorso ed il suo nome, per esempio:

 

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Nome Font"/>

 

A questo punto provo la mia app e tutto funziona come mi aspettavo. Tranne per un font in particolare!!!

Dopo un pò di prove e tentativi praticamente a caso, scopro che anche se il font è disponibile nell'elenco dei font di Blend, ed è selezionabile, il problema risiede nelle Font Family che hanno il testo Bold alla fine.

Quindi se avete un font che si chiama Mio Font Bold, potete utilizzarlo nelle vostre app Windows 8 rimuovendo Bold alla fine del nome:

Cioè non funziona se scrivete:

 

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Mio Font Bold"/>

Dovete necessariamente scrivere

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Mio Font"/>