Cần phải thực hiện một điều khiển WPF mới và cung cấp cho Caret cho nó. Trong WINFORMS hoặc sử dụng giao diện người dùng Windows, nó dễ dàng sử dụng chức năng WIN API Caret, nhưng bây giờ trong WPF chúng ta không có hwnd cho mỗi điều khiển để ... có cách nào để làm điều đó không?Làm cách nào tôi có thể đánh dấu Caret vào một Điều khiển trong WPF
Trả lời
Trong WPF, dấu mũ thực sự là CaretElement, một FrameworkElement bên trong được sử dụng để hiển thị các khối lựa chọn và dấu mũ.
Nếu bạn không kế thừa từ một số loại kiểm soát đã cung cấp hỗ trợ dấu mũ và cố gắng thao tác nó, thật đáng buồn, bạn có thể phải đối mặt với sự cần thiết phải thực hiện nó từ đầu.
EDIT
CaretElement nằm trong khuôn khổ và có, không được ghi lại.
Ví dụ: here.
Triển khai tùy chỉnh nguồn đóng tồn tại trong gói commercial.
Dấu mũ trong WPF là một hoạt ảnh khác, không có API đặc biệt cho điều đó. Vẽ một đường và thay đổi độ mờ của nó bằng DoubleAnimation.
Nếu bạn có cái nhìn sâu hơn về Hộp văn bản WPF, dấu mũ thậm chí không làm 'đảo ngược pixel', nó chỉ là dòng màu xám được vẽ trên chữ cái.
Có khả năng bạn có thể thực hiện đảo ngược pixel trong WPF, bằng cách triển khai hiệu ứng đổ bóng pixel. Không đáng đâu. Phiên bản beta VS2010 không đảo ngược đối với dấu nháy chữ.
Ngoài TextBox/RichTextBox có 3 thành phần chỉnh sửa khác mà bạn có thể tìm thấy:
- Biểu biên tập mã Blend
- Visual Studio biên tập viên 2010 mã
- SharpDevelop biên tập 4 mã
Ok, đó là khó khăn ... và sau đó TExt nên được xử lý bởi sự kiện TextInput cũng như các sự kiện Preview/KeyDow/UP. Đó là một cơn ác mộng để làm cho nó từ đầu .... Cảm ơn sự giúp đỡ. Tất cả các bạn. – jmayor
Nó chắc chắn là một cơn ác mộng chất lượng tốt. –
Liên quan: [Làm cách nào để có được khoảng thời gian dấu nháy hệ thống trong .NET?] (Http://stackoverflow.com/questions/11986832/how-do-i-get-the-systems-caret-period-in-net) ... và trong khi không có cách nào trực tiếp để lấy tần số nháy mắt trong WPF ngoài việc sử dụng hoặc P/Invoke hoặc tham chiếu WinForms (quyết định cho chính bạn cái nào bạn coi là cái ác nhỏ hơn), lớp 'SystemParameters' của WPF cung cấp ['CaretWidth'] (http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.caretwidth.aspx) trường. –
- 1. Đặt tên của WPF-Điều khiển trong Đánh dấu
- 2. Tôi có thể đánh dấu điều khiển từ xa GIT là chỉ đọc không?
- 3. Làm cách nào tôi có thể chuyển các biến vào tệp đánh dấu R.
- 4. Làm cách nào tôi có thể đặt TabIndex trên điều khiển WPF Expander?
- 5. Có thể điều khiển WPF bằng điều khiển HwndHost không?
- 6. Làm thế nào tôi có thể thêm một nút "Clear" vào một TextBox trong WPF?
- 7. Làm cách nào tôi có thể truy cập điều khiển trong WPF từ một lớp hoặc cửa sổ khác
- 8. Làm cách nào để thêm điều khiển WPF này vào WinForm của tôi?
- 9. Làm cách nào tôi có thể ghi vào cửa sổ bảng điều khiển để gỡ lỗi?
- 10. Làm thế nào tôi có thể sắp xếp nhanh các điều khiển trong một cửa sổ WPF?
- 11. Làm cách nào để đánh dấu một ô nếu có một từ cụ thể bên trong?
- 12. Tập trung vào TEDIT & caret
- 13. Tôi có thể đánh dấu phương thức điều khiển là POST trong Play bằng chú thích không?
- 14. Tiện ích đánh dấu trong WPF/Silverlight
- 15. Có một điều khiển WPF mà tôi có thể sử dụng để mở rộng/thu gọn các bảng (hoạt ảnh)
- 16. Có thể tạo mẫu điều khiển tab WPF trông giống như một điều khiển tab không?
- 17. Làm thế nào tôi có thể đặt một điều khiển trong JTableHeader của một JTable?
- 18. Điều khiển Bảng/Lưới nào trong WPF?
- 19. làm cách nào tôi có thể tải tệp trong ruby trên bảng điều khiển đường ray?
- 20. Làm cách nào để tôi có thể đính kèm nhiều url vào một điều khiển từ xa git?
- 21. Làm thế nào tôi có thể viết đầu ra màu nhanh vào Bảng điều khiển?
- 22. Xóa đánh dấu trên điều khiển thanh trượt jQuery
- 23. android: làm cách nào để đánh dấu ứng dụng của tôi là có thể gỡ lỗi?
- 24. Làm thế nào tôi có thể kiểm tra nếu 2 điều khiển chồng lên nhau trên vải trong WPF?
- 25. Làm cách nào một điều khiển có thể xử lý một cú nhấp chuột bên ngoài điều khiển đó?
- 26. Javascript, Nhà điều hành^(caret) làm gì?
- 27. Làm cách nào để tôi có thể thêm lại một điểm đánh dấu thứ tự byte unicode trong linux?
- 28. Làm thế nào để bạn thêm điểm đánh dấu "bạn đang ở đây" vào Điều khiển Bản đồ Bing
- 29. Làm cách nào tôi có thể quay lại đầu dòng trong bảng điều khiển?
- 30. Làm cách nào tôi có thể xử lý phím Quay lại trong điều khiển CEdit?
Đó CaretElement không phải là tài liệu, thậm chí không thể truy cập phải không? – jmayor
Câu trả lời đã chỉnh sửa cho đầy đủ. –
Tôi đã tạo một bài viết giải thích để tạo một bài viết trong WPF http://www.codeproject.com/Articles/633935/Customizing-the-Caret-of-a-WPF-TextBox –