我在C#代码中有几个地方,它将内容输出到控制台。一些使用Console.Writeline,一些使用TraceListeners,如System.Diagnostics.ConsoleTraceListener。
现在我想在WPF文本框中显示所有输出。 是否可以以某种方式将控制台输出1:1绑定到TextBox?
或者我是否必须更改TraceListeners或Console.Writeline的每一次调用以将输出添加到textbox.text中?
答案 0 :(得分:2)
您可以使用Console.OpenStandardOutput拦截Console.Writeline()
- 此answer和此link解释如何实施TextBoxStreamWriter
并将其注入标准输出流。
至于ConsoleTraceListener
- 您应该能够编写自己的TraceListener
文本框并将其分配给适当的TraceSources
(因为它们支持多个跟踪侦听器)。这个answer强调了如何实现相同的目标。
有关跟踪源和侦听器的更多详细信息,请参见here。