我想创建一个具有所有传统shell功能的应用程序(通过按向上/向下,自动完成Tab等命令历史记录),这也将允许在窗口顶部(作为文本)显示状态信息的静态行。即当用户滚动通过输出时,状态文本的静态行保持在适当位置。我找不到任何工具,满足我正在寻找的,虽然也许我只是缺乏行话找到它。
- 我在PowerShell或其他shell或终端中找不到任何文本冻结功能
- GUI(如GUI.cs)可以轻松地提供“标题”文本元素,这些文本元素保持不变,但不能完全模拟控制台窗口(其中有些文本是可编辑的,有些不是,具有历史记录和功能自动完成等),而不需要进行大量的工作
我所找到的最接近我所寻找的是ConEmu,它可以用来将shell集成到WinForms中。我怀疑我可以将一些UI元素与PowerShell元素一起粉碎,以不受滚动影响的方式显示状态信息,假设我正确理解了它的用法。这是一个合适的解决方案,还是有更好的办法?
1条答案
按热度按时间w80xi6nr1#
ANSI终端的滚动区域可以用简单的转义序列编程。要更新滚动区域外的区域,可以保存当前光标位置,将光标定位在受保护区域中,执行输出,然后恢复光标位置。
但是,此功能不与终端模拟器中的回滚功能集成。如果你把保护区放在屏幕的底部,允许输出滚动到最上面的一行,它就有点像。不过,当用户向后滚动时,受保护区域将不会停留在原位。