c# - 如何在 C# PresentationFramework.dll 中设置断点?

标签 c# visual-studio debugging internal

这可能是在黑暗中尝试,但是,我将如何在 PresentationFramework.dll 的以下内部静态方法中设置断点?

System.Windows.Documents.TextEditorTyping._ShowCursor()

我遇到了与 Joe 非常相似的情况。 ,我正在使用 TextBox 控件和包含 ItemsControl 的 Popup 制作自定义自动完成文本框。当我将焦点放在文本框和显示为 StaysOpen="False"的弹出窗口中并键入一些字符时,鼠标指针将被隐藏(我相信是通过调用 System.Windows.Documents.TextEditorTyping.HideCursor)。它通常在鼠标移动时重新显示,但是弹出窗口似乎在检查它是否应该隐藏时处理此事件,因此当您在窗口中移动指针时,指针保持隐藏状态。

有一个怪癖,在第一次按键时,指针消失然后立即重新出现,然后在第二次按键时,指针保持隐藏状态。这表明有东西在调用 _ShowCursor(),我很想知道是什么。因此这篇文章,以及设置上述断点的愿望。如何设置该断点?

关于我的实际问题,指针一旦移动就保持隐藏状态,我希望通过自己模拟 StaysOpen="False"而不阻止鼠标移动事件来解决它,或者自己触发鼠标移动事件以使指针重新出现。对此的任何其他提示表示赞赏。

最佳答案

虽然您不能使用标准框架(没有可用的调试符号)执行此操作,但您可以使用 Reflector Pro 获得这种技巧:http://www.red-gate.com/messageboard/viewforum.php?f=109

Reflector Pro 会将 WPF 程序集反汇编成 .cs 源文件,并动态生成它自己的调试 PDB - 然后您可以使用 Visual Studio 单步执行 Presentation Framework 程序集(并设置断点)

祝你好运!

关于c# - 如何在 C# PresentationFramework.dll 中设置断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079043/

相关文章:

c# - Visual Studio 2015 Update 3 无法打开 .cs 文件

c# - 为什么 visual studio 打破了 C# 中方法的命名约定?

c++ - DebugActiveProcess 是否也跟踪子进程?

css - 可以在编译期间控制台记录一个 LESS 变量吗?

c# - 每次回发后的 Chrome realod 图像 - updatepanel

c# - 依赖注入(inject),不知道在哪里放置方法

c# - 如何在 C# 中触发事件之前阻塞

c# - 'Operator Name' 运算符后缺少操作数

c# - 如何将动态变化的字符串传递给脚本任务?

c++ - 在 Visual C++ 6.0 中跟踪变量变化