2014-07-24 18 views
5

Tôi có một ứng dụng cửa hàng Windows vẽ hình ảnh dưới con trỏ của hệ thống. Tôi chụp tất cả các chuyển động của con trỏ bằng cách sử dụng:Sự kiện PointerMoved không kích hoạt

var window = Window.Current .Content; 
window .AddHandler(PointerMovedEvent, new PointerEventHandler (window_PointerMoved), true); 

Và điều này có tác dụng nếu tôi sử dụng chuột để di chuyển con trỏ.

Tuy nhiên, tôi có một ứng dụng khác - ứng dụng dành cho máy tính để bàn - thay đổi vị trí của con trỏ của hệ thống. Tôi đang sử dụng phương pháp này để đặt vị trí của con trỏ theo chương trình:

[DllImport("user32")] 
    private static extern int SetCursorPos(int x, int y); 

Tuy nhiên, khi con trỏ được di chuyển theo chương trình, PointerMovedEvent trên ứng dụng cửa hàng không kích hoạt! Có ai biết cách tôi có thể giải quyết vấn đề này không?

Trả lời

0

Tôi nghĩ tôi không thể sử dụng System.Runtime .InteropServices trên ứng dụng cửa hàng Windows, nhưng nó được cho phép. Vì vậy, tôi đã quản lý để đạt được các hành vi mong muốn bằng cách có một sợi mà chủ động kiểm tra vị trí hiện hành của con trỏ sử dụng:

[ DllImport("user32.dll")] 
private static extern bool GetCursorPos(ref Win32Point pt); 

Nó không phải là giải pháp thanh lịch nhất, nhưng nó hoạt động!

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