类似终端的WPF文本框?

时间:2010-10-20 08:41:02

标签: wpf console terminal components

我正在寻找一个可嵌入的交互式控制台。我希望用户能够键入一些自定义命令,并在应用程序中编写命令响应。如果它能理解powershell或python会很棒,并且支持命令完成。

我已经建立了自己的类似bash的终端,但我不想完全重新发明轮子,所以我在寻找第三方稳定组件之前再继续使用它。

如果有人有兴趣,我找到了一个powershell控制台PoshConsole:
http://poshconsole.codeplex.com/

由于

PS:你可以在这里找到我想要实现的屏幕:
http://www.hiboox.fr/go/images-100/codein,0a2809b63e05c3d0cac678962e0e3d5a.jpg.html

1 个答案:

答案 0 :(得分:3)

自从我提出问题以来,没有发现任何事情,并坚持“自己动手”的思维方式:

我在.NET中编写了一个类似终端的控件。

http://wpfterminal.codeplex.com/

您可以在此屏幕截图中看到一个示例(终端集成在一个更大的项目中):
http://images4.hiboox.com/images/4210/0a2809b63e05c3d0cac678962e0e3d5a.jpg

基本机制

实际上我所做的是定义 lastPromptIndex 整数,每次用户按下ENTER键并出现新提示时,此值都会更新。

之后,很简单,您只需要在文本框验证输入之前处理任何文本输入。如果文本框插入符号位于 lastPromptIndex 之前,则需要引发错误(通常是哔声),并且必须使文本输入无效,因此文本框中不会写入任何内容。我还自动将插入位置设置到文本框的末尾,这样用户就可以立即输入一些文本。

扩展

如果插入符号位于提示索引之前,您可以通过查找“UP键”输入来启用命令完成等。您需要的只是在将输入事件发送到文本框内部机制之前处理输入事件。我不知道SWT控件是否允许它,但我很确定它们会像任何严肃的UI系统一样。