[WPF] Utiliser une police personnalisée dans une application WPF
Voici une astuce que j'ai découvert en regardant notre designer utiliser Expression Blend. Dans une application WPF, il a utilisé une police personnalisée, c'est-à-dire une police qui n'est pas en standart sur tous les ordinateurs.
Dès lors, Expression Blend lui a généré le code suivant:
<TextBlock FontFamily="Fonts/#graphicpixel" x:Name="tbCustomFont" />
Et dans le projet Visual Studio sur lequel il travaillait, il s'est retrouvé avec un répertoire nommé "Fonts" comprennant la liste des différents fichiers de polices personnalisées qu'il utilise.
En effet, sur les contrôles d'affichage de texte, il est possible de spécifier la police à utiliser. Dès lors où celle-ci n'est pas présent sur la machine, le plus simple est de déployer la police en même tems que l'application. Pour utiliser cette police, il vous faudra utiliser la syntaxe ci-dessus, c'est-à-dire:
NomDuRépertoireDesPolices/#NomDeLaPolice
Ainsi, à l'exécution, le code XAML suivant:
<Viewbox>
<StackPanel Orientation="Vertical">
<TextBlock x:Name="tbNormalFont" />
<TextBlock FontFamily="Fonts/#graphicpixel" x:Name="tbCustomFont" />
</StackPanel>
</Viewbox>
Associé à ce code-behind:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 1);
timer.Tick += (senderTick, argTick) =>
{
this.tbCustomFont.Text = this.tbNormalFont.Text = string.Concat(DateTime.Now.Hour.ToString(), ":", DateTime.Now.Minute.ToString(), ":", DateTime.Now.Second.ToString());
};
timer.IsEnabled = true;
}
Nous permettent d'obtenir le résultat ci-dessous:
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :