在WPF文本框中复制完整的控制台输出?
问题描述:
我在我的C#代码中有几个地方,它们将事情输出到控制台。有些使用Console.Writeline,有些使用TraceListeners如System.Diagnostics.ConsoleTraceListener。在WPF文本框中复制完整的控制台输出?
现在我想在WPF文本框中显示所有输出。 是否有可能以某种方式将控制台输出1:1绑定到TextBox?
或者我是否必须更改TraceListeners或Console.Writeline的每个调用以将输出添加到textbox.text中?
答
您可以使用Console.OpenStandardOutput拦截Console.Writeline()
- 这answer这link解释如何实现TextBoxStreamWriter
和标准输出流注入它。
至于ConsoleTraceListener
- 您应该可以编写基于TraceListener
的自己的文本框,并将其分配给合适的TraceSources
(因为它们支持多个跟踪侦听器)。这answer强调如何实施相同。
有关跟踪源和听众的更多细节可以在here找到。
可能重复的[是否可以拦截控制台输出?](https://stackoverflow.com/questions/6024172/is-it-possible-to-intercept-console-output) – ASh