Цель: для личного проекта я хотел бы смоделировать старомодный компьютерный интерфейс с полноэкранной командной строкой, шестнадцатеричным редактором, текстовым редактором и т. Д. Весь текст, без графики. (Для симулятора / эмулятора гипотетического компьютера.)
Исходная точка: я понял, что режим консоли больше не может быть полноэкранным, но я могу легко перейти на полноэкранный режим в WPF с WindowState = Maximized и WindowStyle = None. Так что я могу сделать полноэкранный TextBox.
Проблема: существует ли существующий элемент управления, шаблон или библиотека для базовой записи на экран текста и чтения с клавиатуры (без заполнения и отправки поля в форме, к которой привязан TextBox)?
Я предполагаю, что мне нужно будет создать собственный пользовательский элемент управления вместо текстового поля и создать большой класс низкоуровневых методов для позиционирования курсора, вывода символов, реагирования на ввод и т. Д. Но если есть попытка - и истинный метод или стандартный подход, я бы лучше использовал это, чем время горения, заново изобретая обычно используемое колесо.
В старые времена DOS я бы использовал библиотеку, основанную на прямых видеозвонках BIOS, PEEK и POKE на видеопамять RAM, а также на опросах клавиатуры и мыши. Конечно, это больше не применимо, но и стандартные подпрограммы консоли не применяются. Уже есть что-то, что заполняет эту нишу?
[править]
Чтобы уточнить. В дни DOS у нас были библиотеки для таких вещей, как:
Scroll(3);
Write(24,1, "Your command has been queued for execution");
input = Prompt(25, 1, "Enter a command>");
и в режиме редактирования документа мы будем делать что-то вроде
key = WaitKey();
switch (key) {
case PGUP: Scroll(-24);
case PGDN: Scroll(24);
case LEFT: MoveCursor(-1,0);
case DOWN: MoveCursor(0,1);
// ...
}
и т.д ... Это то, что я ищу. Что-то с функциями, такими как Запись, Прокрутка, Подсказка и т. Д.