我正在考虑创建一个像终端窗口一样的WPF或Silverlight应用程序.除了,因为它在WPF / Silverlight中,它将能够通过效果,图像等“增强”终端体验.
我正在试图找出模拟终端的最佳方法.我知道如何处理VT100仿真,就解析等而言.但是如何显示呢?我考虑过使用RichTextBox并将VT100转义代码转换为RTF.
我看到的问题是性能.终端可能一次只能获得几个字符,并且为了能够将它们加载到文本框中,我将不断创建TextRanges并使用Load()来加载RTF.此外,为了完成每个加载“会话”,它必须完全描述RTF.例如,如果当前颜色为红色,则每个加载到TextBox中都需要RTF代码才能使文本变为红色,或者我认为RTB不会将其加载为红色.
这似乎非常多余 – 由仿真构建的RTF文档将非常混乱.此外,插入符号的移动似乎不是理想情况下RTB处理的.我需要一些自定义的东西,但这让我很害怕!
希望听到明亮的想法或指向现有解决方案.也许有一种方法可以在它上面嵌入一个实际的终端和覆盖物.我发现的唯一的东西是旧的WinForms控件.
更新:在下面的答案中查看由于perf的建议解决方案是如何失败的. 原文链接:https://www.f2er.com/windows/371883.html