アプリのフォントを一括設定

2025年3月2日日曜日

C# WPF

記事のカテゴリー: C#、.NET9、WPF

アプリのフォントを一括で設定する方法を考えます。

ウィンドウのフォントを設定するとウィンドウ上のコントロールに設定が伝播します。これを利用して、ApplicationのResourcesプロパティでWindowのスタイルを定義して、DynamicResourceを使ってFontFamilyプロパティを設定します。

XAML:

  1. <Application.Resources>
  2. <!-- FontFamily 型のリソースを宣言する -->
  3. <!-- (初期値は SystemFonts.MessageFontFamily) -->
  4. <x:Static x:Key="ApplicationFontFamily" Member="SystemFonts.MessageFontFamily" />
  5.  
  6. <!-- Window のスタイルで DynamicResource を使って FontFamily を設定する -->
  7. <Style TargetType="Window">
  8. <Setter Property="FontFamily" Value="{DynamicResource ApplicationFontFamily}" />
  9. </Style>
  10. </Application.Resources>

ApplicationのResourcesプロパティで定義したFontFamily型のリソースを置き換えることでアプリのフォントを変更できます。

C#:

  1. // FontFamily 型のリソースを書き換える
  2. Application.Current.Resources["ApplicationFontFamily"] = new FontFamily("Meiryo UI");