2010-01-16 31 views
5

Điều này có thể là một ảnh chụp trong bóng tối, nhưng, làm thế nào tôi sẽ đi về việc thiết lập một điểm ngắt bên trong phương pháp tĩnh bên trong sau đây trong PresentationFramework.dll?Làm cách nào để đặt điểm ngắt bên trong C# PresentationFramework.dll?

System.Windows.Documents.TextEditorTyping._ShowCursor() 

tôi đã chạy vào một tình huống rất giống với Joe, nơi tôi đang làm cho một tùy chỉnh tự động hoàn tất textbox sử dụng một điều khiển TextBox và một Popup, trong đó có một ItemsControl. Khi tôi có tiêu điểm trong hộp văn bản và cửa sổ bật lên được hiển thị với StaysOpen = "False" và nhập một số ký tự, con trỏ chuột bị ẩn (thông qua cuộc gọi tới System.Windows.Documents.TextEditorTyping.HideCursor tôi tin). Nó thường được hiển thị lại khi di chuyển chuột, tuy nhiên có vẻ như cửa sổ bật lên xử lý sự kiện này trong khi nó đang kiểm tra xem nó có ẩn hay không, vì vậy con trỏ vẫn ẩn khi bạn di chuyển nó quanh cửa sổ.

Có một điều khó hiểu, trong đó trên lần nhấn phím đầu tiên, con trỏ biến mất sau đó ngay lập tức xuất hiện trở lại, sau đó nhấn phím bấm thứ hai, con trỏ vẫn ẩn. Điều này cho thấy rằng một cái gì đó đang gọi _ShowCursor(), và tôi quan tâm để biết những gì. Do đó bài đăng này và mong muốn đặt điểm ngắt được mô tả ở trên. Làm thế nào để tôi đặt điểm ngắt đó? Về vấn đề thực tế của tôi, con trỏ vẫn ẩn sau khi nó di chuyển, tôi hy vọng sẽ giải quyết nó bằng cách mô phỏng StaysOpen = "False" mà không chặn sự kiện di chuyển chuột hoặc tự động di chuyển chuột để khiến con trỏ xuất hiện trở lại . Bất kỳ lời khuyên nào khác về điều này được đánh giá cao.

Trả lời

5

Trong khi bạn không thể làm điều này với khuôn khổ chứng khoán (không có ký hiệu gỡ lỗi sẵn,), bạn có thể nhận được loại này thủ đoạn gian trá làm việc với Reflector Pro: http://www.red-gate.com/messageboard/viewforum.php?f=109

Reflector Pro sẽ tháo rời các hội WPF vào tập tin cs nguồn, và tạo PDB gỡ lỗi riêng của nó khi đang di chuyển - sau đó bạn chỉ cần thực hiện một bước với Visual Studio thông qua lắp ráp khung trình bày (và thiết lập các điểm ngắt)

chúc may mắn!

+2

Ký hiệu gỡ lỗi * có sẵn từ máy chủ biểu tượng gỡ lỗi của Microsoft. Tốt hơn, mã nguồn cũng có sẵn. –

2

Có thể hơi phức tạp nhưng có thể thực hiện trong các bước sau.

  1. Disable "chỉ mã của tôi" từ menu tùy chọn gỡ lỗi
  2. Mở breakpoint cửa sổ và phá vỡ slect tại chức năng
  3. Loại tên đầy đủ nếu funciom
+0

Không hoạt động. Nó hoạt động khi tôi gõ một hàm trong mã của tôi - sau đó VS hiển thị tên hàm giống nhau và hỏi cái nào tôi muốn chính xác. Nhưng ví dụ: khi tôi gõ 'Add' và chờ nó hỏi tôi một cái gì đó như' List.Add', nó nói rằng không thể tìm thấy hàm. –

3

tôi phải khuyên bạn đặt điểm ngắt trong tệp mã nguồn. Nó có sẵn từ Nguồn tham khảo, tôi rất khuyên bạn nên sử dụng công cụ Mass Downloader để lấy nó. Nếu bạn đã cài đặt nó vào c: \ ReferenceSource thì tệp mã nguồn bạn cần sẽ có sẵn tại c: \ ReferenceSource \ dd \ wpf \ src \ FrameWork \ System \ Windows \ Documents \ TextEditorTyping.cs.

Một trong những lợi thế lớn của nguồn tham chiếu trên nguồn được giải mã là nó chứa các chú thích mã nguồn. Không phải tất cả các mã nguồn đều có sẵn, nhưng các khối rất lớn của WPF.

John Robbins 'install instructions rất tốt. Sự nấc cục duy nhất tôi gặp phải là do trước đây đã sử dụng các biểu tượng gỡ lỗi có sẵn từ máy chủ biểu tượng gỡ lỗi của Microsoft. Tôi phải xóa các tệp .pdb cũng có sẵn từ nguồn tham chiếu từ bộ nhớ cache biểu tượng bằng tay.

+0

là một phần của WPF trong bản phân phối nguồn được chia sẻ? – x0n

+0

Nguồn được chia sẻ là một động vật khác, không có WPF ở đó. Mã nguồn WPF là một phần của Nguồn tham chiếu. –

0

Đối với khác mà chạy vào vấn đề này ở đây là làm thế nào tôi đã làm nó (VS2015):

Downloaded và cài đặt JetBrains dotPeek

chạy dotPeek như một máy chủ biểu tượng

Như đã giải thích ở đây: https://www.jetbrains.com/help/decompiler/2016.1/Using_product_as_a_Symbol_Server.html

có thể bạn cũng phải xóa/đổi tên phiên bản sai của PresentationFramework.pdb như được giải thích trong phần "Các vấn đề và giải pháp có thể có" ở trên liên kết

Các vấn đề liên quan