2008-12-11 11 views
15

J'essaie d'ajouter une police personnalisée en tant que ressource dans mon application. J'ai un répertoire « CustomFont » dans l'application et toutes les polices à l'intérieur de celui-ci sont réglées sur « ressources »WPF - Ajouter une police personnalisée

<Window.Resources> 
    <Style x:Key="Gotham-XLight"> 
     <Setter Property="TextElement.FontFamily" 
       Value="/CustomFonts;Component/#Gotham-XLight" /> 
    </Style> 
</Window.Resources> 

Et puis sur mon TextBlock j'ai ceci: (à l'intérieur d'une grille)

<TextBlock x:Name="TimeTextBlock" Style="{DynamicResource Gotham-XLight}" 
      TextAlignment="Center" FontSize="25" FontWeight="Bold" 
      Foreground="White" Text="TextBlockTimer" 
      Margin="105,242.974,0,226.975" HorizontalAlignment="Left" 
      Width="221.919" /> 

Mais je ne vois pas ma police comme on dit. Est-ce que je fais quelque chose de mal?

Répondre

19

Vous pouvez vérifier le nom de la police, vous devez spécifier le nom de la police et non le nom du fichier. Double-cliquez sur le fichier de police et il devrait afficher un "nom de la police", c'est ce que vous voulez vous assurer est spécifié dans votre style.

+0

Vous avez absolument raison. Merci, je ne le savais pas. –

6

Essayez cette

<Window.Resources> 
    <Style x:Key="Gotham-XLight"> 
     <Setter Property="TextElement.FontFamily" Value="CustomFonts/#Gotham-XLight" /> 
    </Style> 
</Window.Resources> 

Aussi, si vous ne prévoyez pas de changer le style à l'exécution {StaticResource Gotham-XLight} sera beaucoup plus performant.

+0

Je ne pouvais pas le faire fonctionner avec '{StaticResource StyleName}' et je devais revenir à '{{DynamicResource StyleName}' après avoir réalisé quel était le problème. – Dinei

2

En XAML je l'ai fait comme ceci:

<Button Grid.Column="1" Grid.RowSpan="2" Name="start" Margin="5" Click="start_Click"> 
     <TextBlock Name="test" FontFamily="pack://application:,,,/Y_Yoga;Component/Resources/#FontAwesome">&#xF04B;</TextBlock> 
    </Button> 

Cependant, je ne sais pas si #FontAwesome est le nom de la police intégrée ou est-ce le résultat que je renomme le fichier .ttf.

Nous espérons être utiles!

+0

Essayer de comprendre la syntaxe du pack: que représente Y_Yoga? –

+2

C'est juste un nom personnalisé d'une application. Le chemin doit donc ressembler à FontFamily = "pack: // application:",/; Composant/Ressources/# " – sdd

Questions connexes