2008-12-11 33 views
15

Estoy tratando de agregar una fuente personalizada como recurso en mi aplicación. tengo un directorio "CustomFont" en la aplicación y todas las fuentes en el interior de la misma se establece en "Recursos"WPF - Agregar fuente personalizada

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

Y luego en mi TextBlock tengo esto: (dentro de una rejilla)

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

Pero no veo mi fuente como dicen las personas. ¿Estoy haciendo algo mal?

Respuesta

19

Es posible que desee comprobar el nombre de la fuente, debe especificar el nombre de la fuente, no el nombre del archivo.

Haga doble clic en el archivo de fuente y debería mostrar un "Nombre de fuente:" eso es lo que desea asegurarse de que esté especificado en su estilo.

+0

Tienes toda la razón. Gracias, no lo sabía. –

6

probar este

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

Además, si usted no está planeando en cambiar el estilo en tiempo de ejecución {StaticResource Gotham-XLight} será mucho más performante.

+0

No pude hacer que funcione con '{StaticResource StyleName}' y tuve que volver a '{DynamicResource StyleName}' después de darme cuenta de cuál era el problema. – Dinei

2

en XAML lo hice así:

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

Sin embargo, no sé si es #FontAwesome nombre de la fuente incrustada o es el resultado de que me cambió el nombre del archivo .ttf.

Espero ser útil!

+0

Intentando comprender la sintaxis del paquete: ¿qué representa el Y_Yoga? –

+2

Es solo un nombre personalizado de una aplicación. Por lo tanto, la ruta debe ser como FontFamily = "paquete: // aplicación: ,,,/; Component/Resources/# " – sdd

Cuestiones relacionadas