2012-02-28 9 views
5

Implementando una aplicación C# .NET, nuestros elementos GUI usan la fuente "Arial" (esa es la opción predeterminada en el diseñador gráfico GUI de Visual Studio)La fuente no existe y bloquea la aplicación .NET, necesita buscar o instalar la fuente

Un cliente en particular con el que estamos trabajando por algún motivo no tenía instalada la fuente Arial (deben haberla eliminado manualmente, ya que, por lo que yo sé, viene de manera predeterminada con todas las instalaciones de Windows).

Esto ocasiona un bloqueo de la aplicación/excepción.

¿Hay alguna forma de asegurarse de que exista una fuente con C# y/o instalarla automáticamente si no es así?

Respuesta

0

Incruste la fuente como un recurso y verifique para/instalar antes de mostrar los elementos de la interfaz de usuario.

4

necesita integrar la fuente como un recurso y luego hacer algo similar a esto:

[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

Nice! ¿Tiene detalles adicionales sobre cómo instalar la fuente desde el recurso incrustado? (Aparece en Google Voy a buscar también ...) –

+0

He modificado el código. –

Cuestiones relacionadas