【问题标题】:putting a debugging console window in your app在您的应用程序中放置一个调试控制台窗口
【发布时间】:2026-01-02 10:05:01
【问题描述】:

我开始在 VS9 中开发一个简单的应用程序,我决定使用 WPF 和 MVVM 范例。

对于一般的 VS 开发和特殊的 WPF 控件仍然有点缺乏经验,我想问一下我应该如何继续建立一个小调试控制台窗口,它可能占主窗口的 1/4,并且有点像停靠在窗口底部。

当我的应用程序运行或在开发阶段调试它时,我会使用它向其中写入跟踪或调试消息。

无论如何,我应该使用什么类型的控件以及如何写入?

另外,我正在考虑将控制台窗口与我的 WPF 应用程序分开使用,但是 实际上,这并不是那么理想。

-- 克里斯

【问题讨论】:

标签: wpf console debugging


【解决方案1】:

而不是将日志消息写入窗口:

  • 最好使用适当的日志框架(例如log4net)编写消息
  • 如果您不想为简单的应用程序使用复杂的日志框架,您也可以使用 Trace 语句。

如果您确实想将消息写入应用程序中的窗口或控制台,则建议使用单独的窗口 - 这样控制台/调试窗口的存在就不会影响主窗口的布局。

至于让调试控制台“粘贴”到窗口底部,请看一些关于 wpf 布局的文章(或者可能是一本书),并习惯 wpf 中布局系统的工作方式。

http://learnwpf.com/Posts/Post.aspx?postId=c76411d6-5350-4a10-b6bb-f1481c167ecf
http://www.codeproject.com/KB/WPF/BeginWPF1.aspx
http://www.aspfree.com/c/a/Windows-Scripting/WPF-Control-Layout/

您应该能够使用Dock Panel 获得所需的效果

【讨论】:

    【解决方案2】:

    利用这个机会熟悉log4net,而不是调试窗口,并写入文件。 log4net 非常出色(通常)并且是一个非常广泛使用的日志记录系统。

    【讨论】:

      【解决方案3】:

      一个非常基本的方法是使用System.Diagnostics.Trace 来写出调试消息。您可以使用TraceListener 附加到这些消息,如here 所述,或者您可以使用单独的工具(例如DebugView)来显示这些消息。请注意,在调试时,跟踪消息也会显示在 Visual Studio 的 Output 窗口中。

      【讨论】: