2009-11-26 4 views
21

Я создал аккуратное небольшое консольное приложение, которое в основном взаимодействует с проектами ASP.NET на компьютере пользователя. У меня есть очень тривиальная потребность, все, что мне нужно сделать, - это показать окно консоли, мне нужно иметь черный фон, зеленый зеленый цвет и шрифт Lucida. Я мог бы достичь цветной части, используя статические методы класса Console. Хотя в классе нет ничего, что говорит об изменении шрифтов? Кто-нибудь мог изменить шрифт консоли программно?Изменение шрифта в окне консоли в .NET

Любая помощь приветствуется.

+2

Не было бы проще сделать это приложением WinForms? Если его логика хорошо разделена и слабо связана, вы должны иметь возможность добавлять только один TextBox (или RichTextBox?) В пустую форму и в основном выполняться. Я бы предпочел такое приложение лучше, чем настраиваемое консольное приложение. – Groo

ответ

1

Консольное окно - довольно простая среда. Хотя можно изменить шрифт в самых последних версиях Windows с помощью неуправляемых вызовов Win32 API, он не поддерживается через управляемый API.

Цвет шрифта, однако, можно установить, используя свойство Console.ForegroundColor.

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

+1

Это отчасти верно. Вы не можете изменить шрифт для отдельных символов, но можете использовать для всей консоли. – OregonGhost

+0

Если вы видите окно свойств для консоли, доступно 2 шрифта. Почему платформа .NET не сможет изменить шрифт и сможет менять цвета! – theraneman

+0

@OregonGhost: Можете ли вы сообщить мне, как изменить шрифт программно для всей консоли? – theraneman

4

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

Вы можете попробовать изменить свойства ссылки, открывающей консоль (или исполняемый файл), но это локальная настройка, если я прав. Скорее всего, это то, чего вы хотите, если это просто для запуска приложения в вашей системе. Я не уверен, как вы можете изменить их программно.

С Vista есть SetCurrentConsoleFontEx, который может делать то, что вы хотите, если вы можете заставить его работать с классом Console. Я упомянул, что буду ненавидеть вас за это, если приложение когда-нибудь появится в моей системе? ;)

+1

Lol. Я не позволю вам использовать мое маленькое приложение Super :). В таком случае я даже не должен менять цвета. – theraneman

+0

Не в общем, но цвета могут также использоваться для улучшения форматирования (например, PowerShell делает, например, с красными ошибками) :) – OregonGhost

Смежные вопросы