Как использовать шрифт DOS в приложении WinForms

Я хочу использовать в своем приложении WinForms шрифт, используемый в консольном приложении .net.

Какой шрифт мне нужно использовать?

Lucida Console — это не тот шрифт, который используется в консольном приложении .NET, как мне кажется. Так что Lucida Console — это не то, что мне нужно.


person THX-1138    schedule 01.07.2009    source источник
comment
Арбитр AS спрашивает, почему это не ответ? Это шрифт, который используется в консольных приложениях. Есть ли другие требования, о которых вы не упоминаете?   -  person Joe Doyle    schedule 01.07.2009
comment
Я нашел эту ветку bytes.com/sitemap/t-213834.html, в которой говорится, что в WinForm нет способа использовать растровые шрифты без p-invoke.   -  person THX-1138    schedule 01.07.2009


Ответы (3)


Почему Lucida Console не подходит? Потому что это так. В английской ОС есть только два шрифта для консоли: консоль Lucida, которая является TTF, и терминал, который является растровым (вы не можете использовать этот шрифт напрямую, вы должны загрузить vgaoem.fon, если хотите его использовать).

Вы можете прочитать больше здесь. Список шрифтов ttf, доступных для консоли, находится в реестре: HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont. Вы можете прочитать о требованиях к таким шрифтам в статье базы знаний.

И если вы заглянете в этот раздел реестра, то увидите, что по умолчанию доступен только один шрифт ttf — Lucida Console.

person arbiter    schedule 01.07.2009
comment
Я запускаю консольное приложение .NET и вижу, что используемый шрифт не Lucida. Люсида выглядит недостаточно круто. - person THX-1138; 01.07.2009
comment
Так как же загрузить vgaoem.fon и использовать его? (все равно +1 за ваш ответ) - person Patrick McDonald; 01.07.2009
comment
Gdi+ не поддерживает растровые шрифты, только ttf. Поэтому, если вы хотите использовать такие шрифты, вам нужно использовать системное взаимодействие (посмотрите на функцию CreateFont win32). - person arbiter; 02.07.2009

Есть еще Курьер (Новый).

person Coding With Style    schedule 01.07.2009

Похоже, шрифт вашей консоли/командной строки был изменен. Попробуйте сделать это:

Откройте командную строку. Щелкните правой кнопкой мыши значок в левом верхнем углу окна и выберите «Свойства». В окне свойств перейдите на вкладку «Шрифт». Там вы увидите список потенциальных шрифтов, а также тот, который был выбран.

Я лично использовал хак, чтобы шрифт Consolas работал в моей командной строке, а шрифт Courier New всегда является шрифтом «классического» стиля.

Если вы имеете в виду всплывающее окно в нижней части Visual Studio как свою «консоль», вы можете найти этот шрифт, выбрав в меню «Инструменты» -> «Параметры» и выбрав настройки «Шрифты и цвета среды». Выберите «Просмотр вывода» из раскрывающегося списка, и он отобразит используемый шрифт.

person Dillie-O    schedule 01.07.2009
comment
Courier New — это круто и все такое. Но я хочу просто иметь приложение, которое выглядит как консольное приложение с небольшими дополнительными эффектами. Итак, я сделал пользовательский элемент управления, который использует текстовое поле со шрифтом, установленным на (Lucida Console), но он отличается от шрифта окна командной строки (который установлен на растровые шрифты 8x12, что я и хочу). - person THX-1138; 01.07.2009