5

これは暗闇の中でのショットかもしれませんが、PresentationFramework.dllの次の内部静的メソッド内にブレークポイントを設定するにはどうすればよいですか?

System.Windows.Documents.TextEditorTyping._ShowCursor()

私はJoeと非常によく似た状況に遭遇しました。そこでは、TextBoxコントロールとItemsControlを含むポップアップを使用してカスタムオートコンプリートテキストボックスを作成しています。テキストボックスにフォーカスがあり、StaysOpen = "False"で表示されるポップアップにいくつかの文字を入力すると、マウスポインターが非表示になります(System.Windows.Documents.TextEditorTyping.HideCursorを呼び出すことで)。通常はマウスを動かすと再表示されますが、ポップアップは非表示にするかどうかをチェックしているときにこのイベントを処理するように見えるため、ウィンドウ内を移動してもポインタは非表示のままになります。

最初のキーを押すとポインタが消えてすぐに再表示され、2回目のキーを押すとポインタが非表示のままになるという癖があります。これは、何かが_ShowCursor()を呼び出していることを示唆しており、私は何を知りたいのかを知りたいと思っています。したがって、この投稿、および上記のブレークポイントを設定したいという願望。そのブレークポイントを設定するにはどうすればよいですか?

私の実際の問題に関しては、ポインターが移動すると非表示のままになるので、マウス移動イベントをブロックせずに自分でStaysOpen = "False"をエミュレートするか、マウス移動イベントを自分で起動してポインターを再表示することで解決したいと考えています。これに関する他のヒントはありがたいです。

4

4 に答える 4

5

ストックフレームワーク(デバッグシンボルは利用できません)ではこれを行うことはできませんが、Reflector Proでこの種のトリックを機能させることができます:http://www.red-gate.com/messageboard/viewforum.php? f = 109

Reflector Proは、WPFアセンブリを.csソースファイルに分解し、その場で独自のデバッグPDBを生成します。次に、プレゼンテーションフレームワークアセンブリを介してVisual Studioでシングルステップします(ブレークポイントを設定します)。

幸運を!

于 2010-01-16T22:04:38.640 に答える
3

ソースコードファイルにブレークポイントを設定することをお勧めします。リファレンスソースから入手できます。マスダウンローダーツールを使用することを強くお勧めします。c:\ ReferenceSourceにインストールした場合、必要なソースコードファイルはc:\ ReferenceSource \ dd \ wpf \ src \ Framework \ System \ Windows \ Documents\TextEditorTyping.csにあります。

逆コンパイルされたソースに対する参照ソースの大きな利点の1つは、ソースコードのコメントが含まれていることです。すべてのソースコードが利用できるわけではありませんが、WPFの非常に大きなチャンクが利用可能です。

JohnRobbinsのインストール手順は非常に優れています。私が抱えていた唯一の問題は、以前にMicrosoftデバッグシンボルサーバーから入手可能なデバッグシンボルを使用したことが原因でした。参照ソースからも利用できる.pdbファイルをシンボルキャッシュから手動で削除する必要がありました。

于 2010-01-16T22:52:31.907 に答える
2

少し注意が必要な場合もありますが、次の手順で実行できます。

  1. デバッグオプションメニューから「自分のコードだけ」を無効にする
  2. ブレークポイントウィンドウを開き、関数でブレークを選択します
  3. funciomの場合はフルネームを入力してください
于 2010-01-16T22:13:01.443 に答える
0

この問題に遭遇した他の人のために、ここで私がそれをした方法があります(VS2015):

JetBrainsdotPeekをダウンロードしてインストールしました

dotPeekをシンボルサーバーとして実行する

ここで説明されているように:https ://www.jetbrains.com/help/decompiler/2016.1/Using_product_as_a_Symbol_Server.html

上記のリンクの「考えられる問題と解決策」で説明されているように、ダウンロード済みの間違ったバージョンのPresentationFramework.pdbを削除/名前変更する必要もあります。

于 2016-10-30T12:03:29.237 に答える