2008-12-11 4 views
15

Ich versuche, eine benutzerdefinierte Schriftart als Ressource in meiner Anwendung hinzuzufügen. Ich habe ein „CustomFont“ Verzeichnis in der Anwendung und alle Schriften in der es auf „Resource“ gesetztWPF - Benutzerdefinierte Schriftart hinzufügen

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

Und dann auf meinem TextBlock- Ich habe dies: (in einem Gitter)

<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" /> 

Aber ich sehe meine Schrift nicht, wie die Leute sagen. Mache ich etwas falsch?

Antwort

19

Möglicherweise möchten Sie den Namen der Schriftart überprüfen, müssen Sie den Namen der Schriftart nicht den Namen der Datei angeben.

Doppelklicken Sie auf die Schriftart-Datei, und es sollte ein "Font name:" anzeigen, das Sie sicherstellen möchten, dass in Ihrem Format angegeben ist.

+0

Sie haben absolut recht. Danke, ich wusste das nicht. –

6

Versuchen Sie, diese

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

Auch wenn Sie nicht {StaticResource Gotham-XLight} zum Ändern des Stils zur Laufzeit planen, werden viel mehr performant sein.

+0

Ich konnte es nicht mit '{StaticResource StyleName}' arbeiten lassen und musste zu '{DynamicResource StyleName}' zurückkehren, nachdem ich das Problem erkannt hatte. – Dinei

2

in XAML Ich habe es wie folgt aus:

<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> 

Aber ich weiß nicht, ob #FontAwesome Schriftart eingebetteten Name ist oder ist es das Ergebnis, dass ich die .ttf-Datei umbenannt.

Hoffe, hilfreich zu sein!

+0

Versucht, die Pack-Syntax zu verstehen: Was repräsentiert das Y_Yoga? –

+2

Es ist nur ein benutzerdefinierter Name einer App. Der Pfad sollte also wie folgt aussehen: FontFamily = "pack: // application: ,,,/; Komponente/Ressourcen/# " – sdd