2010-02-12 44 views
7

Tôi có một png chứa các vùng trong suốt và tôi đặt nó vào thẻ hình ảnh nhưng làm thế nào để tôi có thể đặt con trỏ đến bàn tay khi nó ở trên một phần mờ của hình ảnh?Con trỏ WPF trên hình ảnh trong suốt

Cảm ơn Tony

Trả lời

4

Để thực hiện điều này, bạn sẽ cần phải nhìn vào bitmap riêng của mình. Cơ chế kiểm tra hit của WPF xem xét bất kỳ điểm ảnh nào được vẽ bằng một bàn chải "trong suốt" để vẫn có thể nhấp được mặc dù vô hình. Điều này thường là một điều tốt nhưng theo cách của những gì bạn đang cố gắng làm. Bởi vì một loại sơn .png với cọ trong suốt, toàn bộ .png được coi là được vẽ khi thực hiện thử nghiệm hit.

Những gì bạn cần làm trong xử lý sự kiện MouseMove của bạn là:

  1. Đi trước và gọi trúng thử nghiệm theo cách thông thường.
  2. Đối với mỗi HitTestResult bạn trở lại, kiểm tra xem nếu nó là một Image và nếu như vậy, cho dù một điểm ảnh trong suốt là dưới chuột
  3. Khi bạn nhận được một hit trên không phải hình ảnh hoặc một điểm ảnh không minh bạch của một hình ảnh, dừng lại.
  4. Quyết định về một giá trị Cursor dựa trên những gì con chuột đã qua

Để xác định xem một con chuột đã qua một điểm ảnh trong suốt của một hình ảnh:

  1. Lấy vị trí chuột tương đối so với hình ảnh (e.GetPosition(image))
  2. Nếu bạn đang sử dụng kéo dài, bạn phải tính toán lại độ căng tại điểm này để lấy chỉ mục bitmap
  3. Sử dụng BitmapSource.CopyPixels để sao chép trực tiếp 1 pixel ngấm vào một mảng (ví dụ: chỉ pixel chuột là lên)
  4. Kiểm tra giá trị pixel được lấy ra để xem nếu nó là một điểm ảnh trong suốt
+0

này là khá nhiều những gì tôi đã làm và hoạt động rực rỡ. – TWith2Sugars

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