01/10/2018, 08:49

Lấy vị trí con trỏ chuột hoặc 1 control trên màn hình máy tính WPF

Chào mọi người, e đang muốn khi kéo chuột trong 1 control thì vị trí của form trên màn hình máy tinh sẽ thay đổi, vì vậy e muốn lấy được vị trí của chuột và vị trí của form hay 1 control trên màn hình máy tính để có thể thay đổi ạ, e có tìm hiểu trên mạng thì thấy winform có cái cursors.Posiontion, còn bên WPF thì lại không có ạ, vậy nên e mong muốn được mọi người chỉ giáo ạ
e xin cảm ơn

Văn Dương viết 11:05 ngày 01/10/2018

Cậu đang custom 1 cái Window và giờ muốn giữ chuột trên TitleBar kéo đi thì Window được kéo đi theo ?

Thế thì cách đơn giản là khi LeftMouseButtonDown trên cái TitleBar thì gọi hàm DragMove.

Còn lấy vị trí chuột trên 1 control thì dùng:

System.Window.Point p = e.GetPositon(UIElement element);

Với element là control muốn lấy toạ độ chuột. Ví dụ:

System.Windows.Point p = e.GetPositon((UIElement)label1);
Dũng viết 10:59 ngày 01/10/2018

Dạ, e muốn lấy vị trí trên màn hình chứ k phải trên 1 control ạ

Trần Hoàn viết 10:53 ngày 01/10/2018

Dũng viết 10:49 ngày 01/10/2018

mình muốn lấy vị trí của 1 control khác trên màn hình như cần thay đổi những gì ạ

Trần Hoàn viết 11:05 ngày 01/10/2018

thay this trong Mouse.GetPosition(this) thành control đó

Dũng viết 10:58 ngày 01/10/2018

vậy cái this này là cái con chuột phải k bạn

Trần Hoàn viết 11:00 ngày 01/10/2018

nó là cái form mà bạn đang thao tác.
Ví dụ bạn muốn cái form nó ẩn thì dùng Hide(); hay this.Hide(); cũng thế

Dũng viết 11:02 ngày 01/10/2018

mình vẫn chưa hiểu lắm, nếu this là cái form thì thay đổi this bằng control mình muốn lấy vị trí sao lại được nhỉ

Trần Hoàn viết 10:50 ngày 01/10/2018

Giả sử bạn có một cái Form2
trong Form1 bạn gọi var ahjhj = new Form2(); thì ahjhj là một control mới đó. Khi nào bạn gọi ahjhj.Show(); thì cái Form2 sẽ hiện ra và có position của nó, trong Form1 bạn get vị trí của mouse đối với Form2 như sau:

Mouse.Capture(this);
cái gì đó = Mouse.GetPosition(ahjhj);
Mouse.Capture(null);
Dũng viết 10:50 ngày 01/10/2018

vậy muốn get vị trí của chuột hoặc form trên màn hình thì sao nhỉ ??, cái bạn làm ở trên mình k hiểu lắm

Văn Dương viết 10:57 ngày 01/10/2018

Dùng PInvoke để gọi Windows API nhé :

docs.microsoft.com

GetCursorPos function

Retrieves the position of the mouse cursor, in screen coordinates.

Bài liên quan
0