using System.IO;
using System.Reflection;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Text;
public static class FontConfig
{
private static PrivateFontCollection Collection;
static FontConfig()
{
LoadFonts(new List<string>() {
@"Quicksand-VariableFont_wght.ttf",
@"Verdana.ttf"
});
}
private static void LoadFonts(IEnumerable<string> fontFiles)
{
Collection = new PrivateFontCollection();
foreach (var fontFile in fontFiles)
{
var fileName = GetRelativePath(fontFile);
if (!File.Exists(fileName)) continue;
Collection.AddFontFile(fileName);
}
}
private static string GetRelativePath(string fileName) => Path.Combine(GetExePath(), fileName);
private static string GetExePath() => Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
public static Font GetFont(string name, float size, FontStyle fontStyle = FontStyle.Regular)
{
var family = new FontFamily(name, Collection);
return new Font(family, size, fontStyle, GraphicsUnit.Pixel);
}
//public static Font ControlFont { get; } = GetFont("Quicksand", 12);
public static Font ControlFont { get; } = GetFont("Verdana", 12);
}
470500cookie-checkC# Use/Load custom fonts (WinForms +)