Что-то странное начало происходить с macOS Mojave.У меня есть приложение GTK #, которое использует моно на MacOS, и оно работало годами.Теперь все шрифты в приложении начали отображаться как жирный .Я создал небольшое тестовое приложение, чтобы проверить возможные причины этого, но я не буду вдаваться в подробности.
using System;
using Gtk;
namespace GtkKeyScan
{
class Program
{
private static Label lblCount;
private static DateTime? scanStart;
static void Main (string [] args)
{
if (Environment.OSVersion.Platform != PlatformID.Unix)
GLib.Thread.Init ();
Application.Init ();
var dlg = new Dialog { WindowPosition = WindowPosition.CenterAlways, WidthRequest = 200 };
lblCount = new Label { Text = "Press key to see the code" };
dlg.VBox.PackStart (lblCount, true, true, 10);
var btnClear = new Button { Label = "Clear", WidthRequest = 110, HeightRequest = 34, CanFocus = false };
btnClear.Clicked += btnClear_Clicked;
dlg.VBox.PackStart (btnClear, false, true, 10);
dlg.KeyPressEvent += ent_KeyPressEvent;
dlg.ShowAll ();
dlg.Run ();
}
static void btnClear_Clicked (object sender, EventArgs e)
{
lblCount.Text = "";
scanStart = null;
}
[GLib.ConnectBefore]
static void ent_KeyPressEvent (object o, KeyPressEventArgs args)
{
if (!string.IsNullOrWhiteSpace (lblCount.Text))
lblCount.Text += "\n";
lblCount.Text += args.Event.Key.ToString ();
if (scanStart == null)
scanStart = DateTime.Now;
else
lblCount.Text += " +" + (int) (DateTime.Now - scanStart.Value).TotalMilliseconds + "ms";
args.RetVal = true;
}
}
}
Я использую последнюю версию Visual Studio Community для macOS версии 7.6.8 и последнююМоно, которое идет с ним, версия 5.12.0.309.
Если я создаю приложение и запускаю его из командной строки, используя
mono GtkKeyScan.exe
Вот как выглядит приложение:
Но если я запускаю его из Visual Studio, приложение выглядит так:
Приложение показывает жирным шрифтом также, если я запускаю приложение из терминала с более старой версией Mono, такой как 4.2.4 или 4.6.2.
Я предполагаю, что Visual Studio выполняет некоторую подготовку, аналогичную тому, когда приложение для macOS упаковывается в .app, и эта часть каким-то образом разбивает шрифты в новой macOS.