si6*_*618 8 .net c# wpf console-application wpf-controls
与此问题类似,除了在WPF应用程序中包含的控制台程序产生彩色输出,因此如果我可以捕获颜色和文本,那将是很好的.
这是我的第一个WPF程序,我不知道如何去寻找/修改正确的控件,目前我只是使用一个可以工作但只能捕获纯文本的TextBox.
更新:我尝试使用RichTextBox:
richTextBox.Document.Blocks.Clear();
richTextBox.Document.Blocks.Add(new Paragraph(new Run(process.StandardOutput.ReadToEnd())));
Run Code Online (Sandbox Code Playgroud)
唉它只显示了纯文本.
Dal*_*ale 13
如果我理解你想要正确做什么,你想要屏幕上刮掉在控制台上运行的遗留应用程序,并通过WPF应用程序中的控件获取其控制台输出yourprocess.StandardOutput.
来自控制台的颜色数据(和格式)将是ANSI.这将以重定向的控制台文本中的控件字符的形式显示,将显示为扩展的ASCII字符和数字.您需要一个ANSI解释器控件才能将其转换回颜色数据.我知道存在几个应该能够轻松调整的ANSI终端控件 - 这个代码项目中的一个能够处理ANSI格式,但它是一个完整的ANSI终端,用于处理连接 - 您可能需要更换代码的终端部分,可以显示返回的字符串yourprocess.StandarOutput.ReadToEnd().
以下是您想要编写自己的格式化程序时需要的ANSI/VT100控制代码.