.net – Windows WPF或Silverlight中的VT100终端仿真

我正在考虑创建一个像终端窗口一样的WPF或Silverlight应用程序.除了,因为它在WPF / Silverlight中,它将能够通过效果,图像等“增强”终端体验.

我正在试图找出模拟终端的最佳方法.我知道如何处理VT100仿真,就解析等而言.但是如何显示呢?我考虑过使用RichTextBox并将VT100转义代码转换为RTF.

我看到的问题是性能.终端可能一次只能获得几个字符,并且为了能够将它们加载到文本框中,我将不断创建TextRanges并使用Load()来加载RTF.此外,为了完成每个加载“会话”,它必须完全描述RTF.例如,如果当前颜色为红色,则每个加载到TextBox中都需要RTF代码才能使文本变为红色,或者我认为RTB不会将其加载为红色.

这似乎非常多余 – 由仿真构建的RTF文档将非常混乱.此外,插入符号的移动似乎不是理想情况下RTB处理的.我需要一些自定义的东西,但这让我很害怕!

希望听到明亮的想法或指向现有解决方案.也许有一种方法可以在它上面嵌入一个实际的终端和覆盖物.我发现的唯一的东西是旧的WinForms控件.

更新:在下面的答案中查看由于perf的建议解决方案是如何失败的.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...