【问题标题】:How do you debug a WPF user control in design mode?如何在设计模式下调试 WPF 用户控件?
【发布时间】:2015-02-13 00:42:48
【问题描述】:

我创建了一个包含标签的 wpf 用户控件。标签的前台设置会根据检查多个条件的某些代码而更改。我的控件中的标签在设计时显示错误的颜色,但我无法弄清楚如何在设计时调试我的用户控件,以便我可以让它捕获断点(从而找出我的逻辑有缺陷的地方)。控件上的颜色在运行时是正确的,只是在设计时显示不正确。

【问题讨论】:

    标签: c# wpf visual-studio user-controls design-time


    【解决方案1】:

    以下是在设计时调试控件的步骤:

    • 启动第二个 Visual Studio 实例
    • 从“调试”菜单附加到第一个实例
    • 在第二种情况下,打开控件的源代码
    • 在适当的位置设置断点
    • 在第一个 VS 实例中,重新加载设计器

    请注意,此技术不限于控件;您还可以使用它来调试 VS 扩展,或在 Visual Studio 中执行的任何内容。

    【讨论】:

    • 当我尝试这种方法时,我在第二个实例中设置的断点显示“当前不会命中断点。没有为此文档加载任何符号”并且它们永远不会被捕获。
    • @WiredWiz,这很奇怪......我多次使用这种技术(使用 WPF 标记扩展、值转换器等),它对我来说总是很好。
    • 我确信 OP 早就发现了问题,但对于其他运行“断点当前不会被命中。没有为此文档加载任何符号”的其他人。确保启用项目代码按钮已切换。禁用该功能可能会导致该特定问题。记下这个类似问题的答案之一:stackoverflow.com/questions/11738436/…
    • 作为参考,这里是“在 Visual Studio 中设计时调试”的文档:docs.microsoft.com/en-us/visualstudio/debugger/… 它详细说明了如何附加到您的第一个 Visual Studio 实例。
    【解决方案2】:

    为了调试 Controls 程序集,我使用以下解决方案。

    1. 使用项目菜单打开项目的属性

    2. 显示Debug(法语中的Déboguer)

    3. Start extern program 设置为devenv.exe(红色矩形)

      在我的电脑上

      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe

    4. 填充命令行参数,使其等于解决方案的文件(蓝色矩形)

    5. 指定工作目录。由于没有在参数中指定目录,因此工作目录等同于包含.sln 文件的目录。 (绿色矩形)

      在我的电脑上

      D:\@Projets\VisualBasic.Net\Tramex.Controls.Net\Test

    现在,我第一次开始调试时,会启动一个新的 Visual Studio。这个阶段可能需要几分钟(在我的电脑上需要 5 分钟)。但这只是我第一次启动调试过程。

    然后我可以在第二个 Visual Studio 应用程序上使用 Designer 中的控件,并查看在第一个窗口中定义的断点引发时会发生什么。

    这与 WinForms 控件完美配合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多