Search code examples
c#wpffont-family

Change font family programmatically in wpf


I'm creating a WPF application.

I have created a folder in my solution and I have some fonts in it.

How can I change programmatically the TextBlock FontFamily ?


Solution

  • XAML

    <TextBlock 
      Name="textBlock"
    
      Background="AntiqueWhite" 
      Foreground="Navy" 
    
      FontFamily="Century Gothic"
      FontSize="12"
      FontStretch="UltraExpanded"
      FontStyle="Italic"
      FontWeight="UltraBold"
    
      LineHeight="Auto"
      Padding="5,10,5,10"
      TextAlignment="Center"
      TextWrapping="Wrap"
    
      Typography.NumeralStyle="OldStyle"
      Typography.SlashedZero="True"
    >
      <Run Background="LightGreen">Text run 1.</Run>
      <LineBreak/><Run Background="LightBlue">Text run 2.</Run>
      <LineBreak/><Run Background="LightYellow">Text run 3.</Run>
    </TextBlock>
    

    Code behind

    TextBlock textBlock = new TextBlock(new Run("A bit of text content..."));
    
    textBlock.Background              = Brushes.AntiqueWhite;
    textBlock.Foreground              = Brushes.Navy;
    
    textBlock.FontFamily              = new FontFamily("Century Gothic");
    textBlock.FontSize                = 12;
    textBlock.FontStretch             = FontStretches.UltraExpanded;
    textBlock.FontStyle               = FontStyles.Italic;
    textBlock.FontWeight              = FontWeights.UltraBold;
    
    textBlock.LineHeight              = Double.NaN;
    textBlock.Padding                 = new Thickness(5, 10, 5, 10);
    textBlock.TextAlignment           = TextAlignment.Center;
    textBlock.TextWrapping            = TextWrapping.Wrap;
    
    textBlock.Typography.NumeralStyle = FontNumeralStyle.OldStyle;
    textBlock.Typography.SlashedZero  = true;
    

    if you want to load a custom font

    controlID.FontFamily = new FontFamily("file:///Font
     Full Path");