2012-02-28 7 views
5

C#.NETアプリケーションを配備すると、GUIエレメントは「Arial」フォントを使用する(Visual Studio GUIデザイナのデフォルト)。フォントが存在せず、.NETアプリケーションがクラッシュする、フォントを確認する必要がある、またはフォントをインストールする必要がある

私たちが何らかの理由で取り組んでいる特定の顧客には、Arialフォントがインストールされていませんでした(私が知っている限り、すべてのWindowsインストールで手作業で削除されているはずです)。

この結果、例外/アプリケーションのクラッシュが発生します。

C#でフォントが存在することを確認する方法はありますか?そうでない場合は自動的にインストールしますか?

答えて

0

フォントをリソースとして埋め込み、UI要素を表示する前に確認してください。

4

あなたはリソースとしてフォントを埋め込む必要があり、その後、これに似たような操作を行います。

[DllImport("gdi32", EntryPoint = "AddFontResource")] 
public static extern int AddFontResourceA(string lpFileName); 

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 

    List<FontFamily> fontsFamilies = new List<FontFamily>(FontFamily.Families); 
    if (!fontsFamilies.Exists(f => f.Name.Equals("Arial"))) 
    { 
     //Save the font from resource here.... 


     //Install the font 
     int result = AddFontResourceA(@"C:\MY_FONT_LOCATION\Arial.TTF"); 
    } 

    Application.Run(new Form1()); 
} 
+0

ニースを!埋め込みリソースからフォントをインストールする方法についての詳細はありますか? (オフにGoogleに私も検索に行く...) –

+0

私はコードを変更しました。 –

関連する問題