Консольный интерфейс Windows (думаю, cmd
) - для пользователя довольно простой графический интерфейс. Однако уровень эффективности, с которым он обрабатывает рендеринг, ввод пользователя и прокрутку, очень высок. Методы, используемые для создания этого интерфейса, несомненно, сильно отличаются от методов традиционного графического интерфейса рабочего стола.
Я заинтересован в создании моей собственной пользовательской консоли/терминала для Windows, предпочтительно используя С# и .NET-технологии (например, управляемые GDI + или WPF). В качестве отправной точки я бы очень хотел просто воссоздать стандартную простую оболочку Windows. Затем я мог расширять вещи и добавлять туда функции.
Я ищу общие рекомендации по созданию такого пользовательского интерфейса консоли, но некоторые конкретные моменты включают в себя:
-
Какую модель рендеринга я должен использовать? Цикл рендеринга? Частичные обновления (например, WPF)? Модель WinForms (не знаете, как это работает)?
-
Какое кэширование используется в модели рендеринга?
-
Как загружаются шрифты и как они отображаются? Являются ли они стандартными шрифтами TrueType, растровыми шрифтами или чем-то еще?
-
Как прокручивается так эффективно?
-
Что-нибудь еще, что вы думаете, может быть уместным!
Любое объяснение того, как встроенный пользовательский интерфейс консоли Windows (или даже превосходный пользовательский интерфейс Linux) выполняет эти действия - и как я могу имитировать их - был бы идеальным. Фактически.
Изменить: Чтобы быть ясным, я действительно хочу сделать это полностью с нуля. На основе графической структуры, такой как GDI + или WPF, но не более.