フォント設定の話(UWP/C#)

 C#/UWPで開発中の話です。

 フォント種類を変更するためにフォントインストールフォルダにアクセスしようと思いました。でもアクセス権限の関係でエラーになってしまいます。そこでファイルアクセスの許可(broadFileSystemAccess)を設定しようと思ったのですが、これを設定したところでWindowsのバージョンによってはデフォルトでアクセス許可されるわけではないことが判明。この場合、ユーザーがWindowsの設定から手作業でアクセス許可しなきゃなりません。そんな手間を掛けさせたらそれだけで評価が下がります。

 ということで結局C++のdll経由でフォントを取得することにしました(こちらの記事を参考にさせていただきました。感謝!:https://www.tnksoft.com/blog/?p=5624)。

 フォント取得時に地域・言語を指定するための「ja-jp」といった文字列は以下のように生成しました。これで外国の人も普通に使える(はず)。まあ、無効文字列ならen-usで動くので気にしなくていいでしょう。

var first = System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
var second = System.Globalization.RegionInfo.CurrentRegion.TwoLetterISORegionName;
var strLanguage = first + "-" + second;

 この文字列、使う機会が結構多いので一発で取れるメソッドがどこかにありそうなものなのですが、中々見つけられません。とりあえず良しとしておきます。

溟犬一六(Ichiro Meiken)
  • 溟犬一六(Ichiro Meiken)
  • フリーランスのWEBクリエイター。小説、ゲーム、アプリなど幅広く活動中。
    Twitter : @dawn_gabacho