Похожее на терминал текстовое поле WPF? - PullRequest
2 голосов
/ 20 октября 2010

Я ищу встраиваемую интерактивную консоль.Я хочу, чтобы пользователь мог вводить некоторые пользовательские команды, а приложение - писать ответы на команды.Было бы замечательно, если бы он понимал PowerShell или Python, ANS поддерживает завершение команды.

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

Если кому-то интересно, я нашел PoshConsole, консоль PowerShell:
http://poshconsole.codeplex.com/

Спасибо

PS: вы можете найти экран того, что я пытаюсьдостичь здесь:
http://www.hiboox.fr/go/images-100/codein,0a2809b63e05c3d0cac678962e0e3d5a.jpg.html

1 Ответ

3 голосов
/ 29 октября 2010

Ничего не найдено с тех пор, как я задал вопрос, и придерживаюсь принципа «сделай сам»:

Я написал терминальный элемент управления в .NET.

http://wpfterminal.codeplex.com/

Вы можете увидеть пример на этом скриншоте (терминал интегрирован в более крупный проект):
http://images4.hiboox.com/images/4210/0a2809b63e05c3d0cac678962e0e3d5a.jpg

Основные механизмы

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

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

Расширения

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...