Чтение части текста в консоли с сохранением цветов - C#
Формулировка задачи:
Можно ли прочитать часть текста в консоли с сохранением цветов? Нужно скопировать в некой области текст с сохранением цветов и после отображения появившегося текста вставить скопированное. Если кому интересно делаю сообщения в консоли.
Вот код вывода окошка
public static void BuildWindow(string content, ConsoleColor backColor, ConsoleColor foreColor)
{
int _cWidth = Console.WindowWidth;
int _cHeight = Console.WindowHeight - 1;
List<string> _wndArray = new List<string>();
Console.BackgroundColor = backColor;
Console.ForegroundColor = foreColor;
char _wndFrmTB = '=';
char _wndFrmLR = '|';
char _wndFrmLTC = '*';
char _wndFrmLDC = '*';
char _wndFrmRTC = '*';
char _wndFrmRDC = '*';
int _wndWidth = content.Length + 4;
string _top = _wndFrmLTC + new string(_wndFrmTB, _wndWidth - 2) + _wndFrmRTC;
string _cn1 = _wndFrmLR + new string(' ', _wndWidth - 2) + _wndFrmLR;
string _cn2 = _wndFrmLR + " " + content + " " + _wndFrmLR;
string _cn3 = _wndFrmLR + new string(' ', _wndWidth - 2) + _wndFrmLR;
string _bot = _wndFrmLDC + new string(_wndFrmTB, _wndWidth - 2) + _wndFrmRDC;
_wndArray.Add(_top);
_wndArray.Add(_cn1);
_wndArray.Add(_cn2);
_wndArray.Add(_cn3);
_wndArray.Add(_bot);
int _x = (_cWidth / 2) - (_wndWidth / 2);
int _y = (_cHeight / 2) - (_wndArray.Count / 2);
Console.SetCursorPosition(_x, _y);
int _tmpY = _y;
for (int i = 0; i < _wndArray.Count; i++)
{
Console.Write(_wndArray[i]);
_tmpY = _tmpY + 1;
Console.SetCursorPosition(_x, _tmpY);
}
Console.SetCursorPosition(0, 0);
Console.ResetColor();
}Решение задачи: «Чтение части текста в консоли с сохранением цветов»
textual
Листинг программы
//
// Сводка:
// Возвращает или задает цвет фона консоли.
//
// Возврат:
// Значение из перечисления , задающее фоновый цвет консоли, то есть цвет, на фоне
// которого выводятся символы.Значением по умолчанию является Black.
//
// Исключения:
// T:System.ArgumentException:
// Цвет, заданный в операции set, не является допустимым членом перечисления System.ConsoleColor.
//
// T:System.Security.SecurityException:
// Данный пользователь не имеет разрешения на выполнение этого действия.
//
// T:System.IO.IOException:
// Произошла ошибка ввода-вывода.
public static ConsoleColor BackgroundColor { get; set; }