2012-06-13 58 views
5

(lần đầu tiên câu hỏi sau đó tôi sẽ giải thích)Mouseless Kéo và thả - thay đổi cách sự kiện này được nâng lên (tăng thả/kéo sự kiện programatically)

Làm thế nào để nói với các ứng dụng để thả một đối tượng/nâng cao thả event programatically (Tôi không sử dụng chuột)?

Tôi hiện đang phát triển cho MSKinect và tôi muốn triển khai Kéo và Thả thực sự gần với kéo và thả gốc (xem msdn doc).

Tôi đã triển khai kéo và thả bằng canvas và sử dụng sự kiện được con trỏ Kinect đưa ra để "kéo" mọi thứ xung quanh. nhưng tôi quan tâm nhiều hơn đến việc chuyển dữ liệu bằng cách kéo và thả.

Tôi biết rằng sự kiện thả thường được khởi chạy khi nút chuột được nhả ra, tôi muốn tạo bản phát hành draggableElement khi có một cử chỉ đã cho.

Thông tin thêm: Tôi đang thực hiện một quản lý dựa trên LesterLobo's work

Trả lời

0

Bạn có thể toàn cầu mô phỏng chuyển động chuột và nhấp chuột bằng cách sử dụng chức năng SendInput của Win32 API. Bạn có thể tìm thấy hướng dẫn về cách gọi hàm bằng C# here.

Chức năng SendInput gần với thực tế khi sử dụng chuột. Thật không may, nó không phải là rất thuận tiện để làm việc với. Bạn sẽ phải mô phỏng cách nhấn nút chuột trái, di chuyển chuột và nhả nút chuột trái.

Xin lưu ý rằng cách tiếp cận này nhằm mục đích kéo nội dung trên các ứng dụng, cũng như trong ứng dụng. Nếu bạn chỉ muốn kéo công cụ xung quanh trong ứng dụng, có nhiều khả năng là một giải pháp đơn giản hơn.

+0

Tôi nghĩ rằng bỏ qua chuột bằng cách sử dụng SendInput có thể làm việc tuy nhiên tôi chỉ muốn nâng cao một sự kiện trong mã phía sau (giống như cách chúng ta có thể nâng cao một sự kiện Click). Tôi không muốn sử dụng chuột (hoặc đầu vào của nó) ở tất cả bởi vì tôi đã có hai con trỏ với Kinect cho hai người dùng khác nhau (tức là 4 con trỏ). Tôi không muốn bất kỳ sự tương tranh nào trên hàm này: có thể có 4 lần kéo và thả cùng một lúc. – astreal

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