Управление размером окна консоли C#


При разработке консольных приложений может потребоваться определить размер текущего окна или изменить размеры для конкретной цели. Обе эти задачи становятся возможными с помощью класса Console.

Класс Console

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

Определение размера окна консоли возможно с помощью двух свойств класса Console. Они WindowWidth и WindowHeight. Оба являются статическими элементами, которые возвращают соответствующее измерение окна в символах. Если вы измените значения свойств, то окно консоли соответственно изменит свой размер.

Чтобы продемонстрировать это, добавьте следующий основной метод в новое консольное приложение и запустите программу. Этот код повторяется до тех пор, пока вы не нажмете клавишу Enter. Во время каждой итерации цикла считываются свойства windowHeight и windowWidth и отображается текущий размер окна. При нажатии одной из клавиш со стрелками окно расширяется или сжимается в зависимости от используемой клавиши.

namespace ConsoleResize
{
	class Program
	{
		public static void Main(string[] args)
		{
			Console.CursorVisible = false;
    		Console.ForegroundColor = ConsoleColor.Green;
    		ConsoleKeyInfo keyInfo;
    		Console.Title = "UpRead.Ru";
			
			do
    	{
        Console.CursorLeft = 0;
        Console.CursorTop = 1;
        Console.Write("({0}x{1}) ", Console.WindowWidth, Console.WindowHeight);  
 
        keyInfo = Console.ReadKey();
 
        switch (keyInfo.Key)
        {
            case ConsoleKey.LeftArrow:
                Console.WindowWidth = Math.Max(Console.WindowWidth - 1, 6);
                break;
            case ConsoleKey.RightArrow:
                Console.WindowWidth = Math.Min(Console.WindowWidth + 1, 100);
                break;
            case ConsoleKey.UpArrow:
                Console.WindowHeight = Math.Max(Console.WindowHeight - 1, 2);
                break;
            case ConsoleKey.DownArrow:
                Console.WindowHeight = Math.Min(Console.WindowHeight + 1, 60);
                break;    
        }
    } while (keyInfo.Key != ConsoleKey.Enter);
		}
	}
}
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, си шарп, консоль




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Какой язык лучше для разработки игр?
Lazy loading, или появление изображений при скроллинге для ускорения сайта
Парсер, чекер и база бесплатных прокси