Стиль шрифта Monotype Crosiva не отображается в winform, так как он отображается в MS Word. - PullRequest
0 голосов
/ 21 января 2020

в моей winform у меня есть метка, и я изменил ее тип шрифта, указав c тот, который называется (Monotype Corsiva). но стиль шрифта не отображается как его внешний вид в MS word (см. следующее изображение)

1 and 2

1 - это стиль шрифта, который отображается в Microsoft word, 2 - это мой ярлык в My Winform " вырезано из формы "

шрифт не поддерживает обычный, я делаю его itali c и это не сработало, я также попытался переустановить шрифт без изменений. кто-нибудь может помочь моему?

1 Ответ

0 голосов
/ 21 января 2020

Я недавно встроил шрифт в свой WinForms exe, чтобы убедиться, что он существует на компьютере пользователя из-за схожих проблем.

  1. Добавьте файл Font в файл Resources.resx
  2. Добавьте код для загрузки шрифта, прочитав сгенерированное свойство

    byte[] fontData = Properties.Resources.FONT_RESOURCE_NAME_HERE;
    
    IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length);
    System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
    uint dummy = 0;
    fonts.AddMemoryFont(fontPtr, fontData.Length);
    AddFontMemResourceEx(fontPtr, (uint)fontData.Length, IntPtr.Zero, ref dummy);
    System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
    
    Font memoryLoadedFont = new Font(fonts.Families[0], 16.0F);
    
  3. Измените свойство .Font вашей цели Control

    this.Font = memoryLoadedFont
    

Конечно, вы можете просто прочитать байты из любого другого места:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...