Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Добавление TTF, не установленного в системе / 6 сообщений из 6, страница 1 из 1
29.04.2021, 01:02
    #40067038
Добавление TTF, не установленного в системе
Понадобилось закатать шрифт в программу, чтобы она отображала его без необходимости установить.
Первая мысль пришла: добавить файловый ресурс и подгрузить его.
Пробую:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
PrivateFontCollection pfc = new PrivateFontCollection();

           var fontBytes = Resources.MyFont;
            var handle = GCHandle.Alloc(fontBytes, GCHandleType.Pinned);
            var pointer = handle.AddrOfPinnedObject();
            try
            {
                pfc.AddMemoryFont(pointer, fontBytes.Length);
            }
            finally
            {
                handle.Free();
            }



В отладчике видно, что фонт загружается в коллекцию, но после назначения его контролям дефолтный шрифт не меняется.
Если же вместо этого сделать:

Код: c#
1.
           pfc.AddFontFile(@"Assets\MyFont.ttf");



то фонт меняется на загруженный. Разницы между значениями фонта в коллекции при том и другом методах загруски на глаз установить не удалось. Кто-нибудь знает, как загрузить из ресурса? Не хотелось бы плодить файлы, а то приложение состоит всего из 1го EXE, что удобно.
...
Рейтинг: 0 / 0
30.04.2021, 07:36
    #40067452
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление TTF, не установленного в системе
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.text.privatefontcollection.addmemoryfont
Remarks
To use the memory font, text on a control must be rendered with GDI+. Use the SetCompatibleTextRenderingDefault method, passing true, to set GDI+ rendering on the application, or on individual controls by setting the control's UseCompatibleTextRendering property to true.
...
Рейтинг: 0 / 0
02.05.2021, 03:24
    #40067845
Добавление TTF, не установленного в системе
Сон Веры Павловны,

Уже было сделано. В Main() false на этом вызове заменён был на true.
...
Рейтинг: 0 / 0
02.05.2021, 19:54
    #40067961
Добавление TTF, не установленного в системе
кажется понял. текст боксы не поддерживают. облом?
...
Рейтинг: 0 / 0
03.05.2021, 10:38
    #40068025
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление TTF, не установленного в системе
гомодиализ
кажется понял. текст боксы не поддерживают. облом?

Не всё ещё потеряно.
https://stackoverflow.com/questions/1955629/c-sharp-using-an-embedded-font-on-a-textbox
...
Рейтинг: 0 / 0
04.05.2021, 01:30
    #40068229
Добавление TTF, не установленного в системе
Сон Веры Павловны,

Спасибо большое! Эвон чем люди вынуждены заниматься.
Но пользоваться этим я не буду. Ну его нахрен. У них всегда мрамора на одну ягодицу не хватает. Проще файлик рядом положить и обойтись 1й строчкой, чем городить этот почёс левого уха правой ногой. Дебилами были, дебилами и остались.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Добавление TTF, не установленного в системе / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]