2010-01-16 10 views
5

To może być strzał w ciemno, ale w jaki sposób chciałbym ustawić punkt przerwania wewnątrz poniższej wewnętrznej statycznej metody w PresentationFramework.dll?Jak ustawić punkt przerwania wewnątrz pliku C# PresentationFramework.dll?

System.Windows.Documents.TextEditorTyping._ShowCursor() 

Zabrakło mi w bardzo podobnej sytuacji do Joe, gdzie robię niestandardową autouzupełniania tekstowe przy użyciu TextBox i Popup który zawiera ItemsControl. Kiedy mam fokus w polu tekstowym i wyskakujące okienko z StaysOpen = "False" i wpisuję kilka znaków, wskaźnik myszy jest ukryty (przez wywołanie System.Windows.Documents.TextEditorTyping.HideCursor, jak sądzę). Zwykle pojawia się ponownie na ruchy myszki, jednak wydaje się, że wyskakujące okienko obsługuje to zdarzenie podczas sprawdzania, czy ma się ukryć, czy nie, więc wskaźnik pozostaje ukryty podczas przesuwania go po oknie.

Jest dziwactwo, gdzie na pierwszym naciśnięciu przycisku, wskaźnik znika wtedy natychmiast pojawia się ponownie, a następnie na drugim naciśnięciu przycisku, wskaźnik pozostaje ukryte. Sugeruje to, że coś wywołuje _ShowCursor(), i jestem zainteresowany, aby wiedzieć, co. Stąd ten post i pragnienie ustawienia punktu przełamania opisanego powyżej. Jak ustawić ten punkt przerwania?

Jeśli chodzi o mój aktualny problem, wskaźnik pozostanie ukryty, gdy się porusza, mam nadzieję, że rozwiążę go albo emulując StaysOpen = "False" bez blokowania ruchów myszką, albo samemu wywołając ruch myszy, aby wskaźnik się pojawił . Wszelkie inne wskazówki na ten temat są mile widziane.

Odpowiedz

5

Chociaż nie można tego zrobić z ramami stanie (bez symboli debugowania dostępne) można uzyskać tego rodzaju oszustwa pracuje z reflektorem PRO: http://www.red-gate.com/messageboard/viewforum.php?f=109

Reflektor Pro demontować zespoły WPF do plików źródłowych .cs, i wygenerować swój własny debug PDB na bieżąco - wtedy następnie jednoetapowy z Visual Studio przez zespół ramowego Prezentacja (i ustawić punkty przerwania)

powodzenia!

+2

Symbole debugowania * są * dostępne z serwera symboli debugowania firmy Microsoft. Jeszcze lepiej, kod źródłowy jest również dostępny. –

2

Może to być nieco trudne, ale można to zrobić w następujących krokach.

  1. Disable „tylko mój kod” z menu opcji debugowania
  2. Otwórz okno wartości graniczne i slect przerwa w funkcji
  3. Wpisz imię i nazwisko, jeśli funciom
+0

Nie działa. Działa, gdy wpisuję funkcję w moim kodzie - wtedy VS wyświetla podobne nazwy funkcji i pyta, który dokładnie chcę. Ale np. kiedy jestem typu 'Dodaj' i czekam na to, aby zapytać mnie o coś jak' List.Add', mówi, że funkcja nie może zostać znaleziona. –

3

muszę polecam ustaw punkt przerwania w pliku kodu źródłowego. Jest dostępny w Reference Source, bardzo polecam narzędzie Mass Downloader, aby je uzyskać. Jeśli zainstalowałeś go do c: \ ReferenceSource, wówczas wymagany plik kodu źródłowego będzie dostępny pod adresem c: \ ReferenceSource \ dd \ wpf \ src \ FrameWork \ System \ Windows \ Documents \ TextEditorTyping.cs.

Jedną z największych zalet źródła referencyjnego w porównaniu ze źródłem dekompilowanym jest to, że zawiera on komentarze do kodu źródłowego. Nie wszystkie kody źródłowe są dostępne, ale są bardzo duże porcje WPF.

John Robbins 'install instructions są bardzo dobre. Jedyna czkawka, jaką miałem, została wywołana przez wcześniejsze użycie symboli debugowania dostępnych z serwera symboli debugowania Microsoft. Musiałem ręcznie usunąć pliki .pdb, które są również dostępne ze źródła odniesienia z pamięci podręcznej symboli.

+0

są zespoły WPF części współdzielonego źródła dystrybucji? – x0n

+0

Shared Source to kolejne zwierzę, nie ma tam WPF. Kod źródłowy WPF jest częścią źródła referencyjnego. –

Powiązane problemy