我自己没有做过,但这是我的“如果有时间我会做”的项目之一。因此,我仍在寻找现有的实现:-P
无论如何,一些想法:
使用视觉效果(即椭圆、文本块)的方法可能不是一个好主意。想想如果你想要 200x100 字符会发生什么。甚至可能是一个后备缓冲区。将它全部保存在内存中+绘制它......这将非常慢。
因此,更好(甚至是正确)的方法是“画自己”。由于 WPF 是后缓冲的,并且您不想显示任意位图,因此最可能的方法是创建一个新的 UserControl 并覆盖它的 Paint-Method。您可能更喜欢从 Control 派生,但 UserControl 可能有 Content,因此您可以在里面显示类似连接指示器图标的东西。
架构方面,我建议创建一个包含控制台缓冲区模型的依赖属性Buffer ( )。ConsoleBuffer
另一个 DP 将持有左上角位置( long
)。它决定了从哪里开始显示(当你往后看的时候)。控制台模型我将创建一个包含 achar[]
和 a Color[]
(一维)的类。使用换行符和\n
字符来制作线条(因为这是控制台的字符)。然后,如果您调整控件的大小,它将重新流动而无需重新分配缓冲区。您可以使用不同大小的 **ConsoleBuffer**s(用于不同数量的后视字符)。
ConsoleBuffer.Write(string s)
是你做事的方法。
Maybe it is advisable to hold arrays of arrays char[][]
to represent lines.... but that is up to finding out while programming.