如何在设计模式下调试 WPF 用户控件?
Posted
技术标签:
【中文标题】如何在设计模式下调试 WPF 用户控件?【英文标题】:How do you debug a WPF user control in design mode? 【发布时间】:2015-02-13 00:42:48 【问题描述】:我创建了一个包含标签的 wpf 用户控件。标签的前台设置会根据检查多个条件的某些代码而更改。我的控件中的标签在设计时显示错误的颜色,但我无法弄清楚如何在设计时调试我的用户控件,以便我可以让它捕获断点(从而找出我的逻辑有缺陷的地方)。控件上的颜色在运行时是正确的,只是在设计时显示不正确。
【问题讨论】:
【参考方案1】:以下是在设计时调试控件的步骤:
启动第二个 Visual Studio 实例 从“调试”菜单附加到第一个实例 在第二种情况下,打开控件的源代码 在适当的位置设置断点 在第一个 VS 实例中,重新加载设计器请注意,此技术不限于控件;您还可以使用它来调试 VS 扩展,或在 Visual Studio 中执行的任何内容。
【讨论】:
当我尝试这种方法时,我在第二个实例中设置的断点显示“当前不会命中断点。没有为此文档加载任何符号”并且它们永远不会被捕获。 @WiredWiz,这很奇怪......我多次使用这种技术(使用 WPF 标记扩展、值转换器等),它对我来说总是很好。 我确信 OP 早就发现了问题,但对于其他运行“断点当前不会被命中。没有为此文档加载任何符号”的其他人。确保启用项目代码按钮已切换。禁用该功能可能会导致该特定问题。记下这个类似问题的答案之一:***.com/questions/11738436/… 作为参考,这里是“在 Visual Studio 中设计时调试”的文档:docs.microsoft.com/en-us/visualstudio/debugger/… 它详细说明了如何附加到您的第一个 Visual Studio 实例。【参考方案2】:为了调试 Controls 程序集,我使用以下解决方案。
使用项目菜单打开项目的属性
显示Debug
(法语中的Déboguer)
将Start extern program
设置为devenv.exe
(红色矩形)
在我的电脑上
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe
填充命令行参数,使其等于解决方案的文件(蓝色矩形)
指定工作目录。由于没有在参数中指定目录,因此工作目录等同于包含.sln
文件的目录。 (绿色矩形)
在我的电脑上
D:\@Projets\VisualBasic.Net\Tramex.Controls.Net\Test
现在,我第一次开始调试时,会启动一个新的 Visual Studio。这个阶段可能需要几分钟(在我的电脑上需要 5 分钟)。但这只是我第一次启动调试过程。
然后我可以在第二个 Visual Studio 应用程序上使用 Designer 中的控件,并查看在第一个窗口中定义的断点引发时会发生什么。
这与 WinForms 控件完美配合。
【讨论】:
以上是关于如何在设计模式下调试 WPF 用户控件?的主要内容,如果未能解决你的问题,请参考以下文章