public void Test_DefaultFont_MatchesOsExpectations() { string defaultFont = InstalledFont.Default(); Console.WriteLine($">>> Default font: {defaultFont}"); string defaultFontSans = InstalledFont.Sans(); Console.WriteLine($">>> Default sans font: {defaultFontSans}"); string defaultFontSerif = InstalledFont.Serif(); Console.WriteLine($">>> Default serif font: {defaultFontSerif}"); string defaultFontMonospace = InstalledFont.Monospace(); Console.WriteLine($">>> Default monospace font: {defaultFontMonospace}"); Assert.That(defaultFont == defaultFontSans); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Assert.That(defaultFontSans == "Segoe UI"); Assert.That(defaultFontSerif == "Times New Roman"); Assert.That(defaultFontMonospace == "Consolas"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Assert.That(defaultFontSans == "DejaVu Sans"); Assert.That(defaultFontSerif == "DejaVu Serif"); Assert.That(defaultFontMonospace == "DejaVu Sans Mono"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Assert.That(defaultFontSans == "Helvetica"); Assert.That(defaultFontSerif.StartsWith("Times")); Assert.That(defaultFontMonospace == "Courier"); } }
public void Test_MeasureString_ShowSize() { string testString = "ScottPlot"; var fontName = InstalledFont.Default(); float fontSize = 14; // an active Graphics object is required to measure a string... using (var bmp = new System.Drawing.Bitmap(1, 1)) using (var gfx = System.Drawing.Graphics.FromImage(bmp)) using (var font = new System.Drawing.Font(fontName, fontSize)) { var stringSize = ScottPlot.Drawing.GDI.MeasureString(gfx, testString, font); var sb = new StringBuilder(); sb.AppendLine(System.Environment.OSVersion.ToString()); sb.AppendLine($"The string '{testString}' with font '{fontName}' (size {fontSize}) " + $"measures: {stringSize.Width}px x {stringSize.Height}px"); Console.WriteLine(sb); } }