Computechsoft Ответов: 3

Встроенные ресурсы TTF


Я использую файл TTF через встроенные ресурсы, но не показываю шрифт в RTBox, но
то же самое, если я подаю заявку на label1 в свойстве set
Label1.UseCompatibleTextRendering = true font будет показан, если свойство false font не показывает то же самое, что я хочу использовать в RTBox, это может быть возможно.

Что я уже пробовал:

&ЛТ;система.чертеж.toolboxbitmap(gettype(myttf), "myttf.ttf")="">
Публичный Класс MyTTF
Наследует Windows.Формы.Управления richtextbox
End Класса

Maciej Los

Что такое RTBox?

Computechsoft

Управления richtextbox

3 Ответов

Рейтинг:
6

RickZeeland

Смотрите последний ответ в обсуждении здесь: Установите шрифты в Windows, если они отсутствуют - VB.NET | Dream.In.Code[^]


Computechsoft

Я вижу последний ответ, но я не хочу устанавливать шрифт в папку шрифтов windows. Я хочу использовать шрифт из папки ресурсов приложения. Это означает "встроенные ресурсы". Я применил это, пожалуйста, проверьте это, я надеюсь, что вы решите эту проблему.
************************************************************************

Система Импорта.Чертеж.Текст
Система Импорта.Во время выполнения.InteropServices

Общественного Класса Form1
Публичная Собственность SelectionFont Как Система.Чертеж.Шрифт
Общественные _PrivateFontColection Как PrivateFontCollection = Ничего

Только для чтения GetSymbology имущества(размер бывал как один, стиль бывал как свойство fontstyle) Как Шрифт
Возьми
Если _PrivateFontColection - Это Ничто, То LoadFont()
Возврат Нового Шрифта(_PrivateFontColection.Семьи(0), размер, стиль)
Конец Получить
Конечное Свойство

Публичное Свойство StartingIndex Как Целое Число

Частный Sub LoadFont()
_PrivateFontColection = Новая Коллекция PrivateFontCollection
Dim fontMemPointer As IntPtr = Marshal.AllocCoTaskMem(My.Resources.TTF.Length)
Маршал.Копия(My.Resources.TTF, StartingIndex, fontMemPointer, My.Resources.TTF.Length)
_PrivateFontColection.AddMemoryFont(fontMemPointer, My.Resources.TTF.Length)
Маршал.FreeCoTaskMem(fontMemPointer)
Конец Подводной Лодки

Частная суб методе form1_load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить
Richtextbox1 отображение.SelectionFont = Richtextbox1 Отображение.GetSymbology(14, Свойство Fontstyle.Регулярный)
Конец Подводной Лодки
End Класса

С уважением

RickZeeland

Так и должно быть:
Частная суб методе form1_load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить
RichTextBox1.SelectionFont = GetSymbology(14, FontStyle.Регулярный)
Конец Подводной Лодки

Если это не сработает, попробуйте что-то вроде этого:
RichTextBox1.SelectionFont = Новый Шрифт("Тахома", 12, FontStyle.Жирный)

Computechsoft

Richtextbox1 отображение.SelectionFont = Richtextbox1 Отображение.GetSymbology(14, Свойство Fontstyle.Регулярный)
если шрифт установлен в папке шрифтов windows, то это работа, если не установлен, то нет работы.
я не хочу устанавливать шрифт в папку шрифтов windows. Я использую "встроенные ресурсы"

***********************************************************************

RichTextBox1.SelectionFont = Новый Шрифт("Тахома", 12, FontStyle.Жирный)
Та же ситуация и здесь

Рейтинг:
24

Maciej Los

Я бы настоятельно рекомендовал ознакомиться с документацией: Как установить атрибуты шрифта для элемента управления Windows Forms RichTextBox | Microsoft Docs[^]


Рейтинг:
17

Computechsoft

RTBox.SelectionFont = RTBox.GetSymbology39(14, FontStyle.Регулярный)

GetSymbology39 это свойство только для чтения, другой это этот шрифт не установить в
Папка шрифтов Windows я использую это свойство через встроенные ресурсы.
но шрифт не отображается в RTBox. Если я установил в папку шрифтов windows so (GetSymbology39) свойство работать нормально. без установки не получится.

MadMyche

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