在WPF TextBox中复制完整的控制台输出?

时间:2017-08-14 14:47:29

标签: c# wpf logging console tracelistener

我在C#代码中有几个地方,它将内容输出到控制台。一些使用Console.Writeline,一些使用TraceListeners,如System.Diagnostics.ConsoleTraceListener。

现在我想在WPF文本框中显示所有输出。 是否可以以某种方式将控制台输出1:1绑定到TextBox?

或者我是否必须更改TraceListeners或Console.Writeline的每一次调用以将输出添加到textbox.text中?

1 个答案:

答案 0 :(得分:2)

您可以使用Console.OpenStandardOutput拦截Console.Writeline() - 此answer和此link解释如何实施TextBoxStreamWriter并将其注入标准输出流。

至于ConsoleTraceListener - 您应该能够编写自己的TraceListener文本框并将其分配给适当的TraceSources(因为它们支持多个跟踪侦听器)。这个answer强调了如何实现相同的目标。

有关跟踪源和侦听器的更多详细信息,请参见here