1. ホーム
  2. wpf

WPFで現在のマウススクリーン座標を取得する方法は?

2023-09-05 09:05:37

質問

画面上の現在のマウス座標を取得する方法は? 私が知っているのは Mouse.GetPosition() だけ知っていますが、私は要素を使用せずに調整を取得したいです。

どのように解決するのですか?

レイチェルの回答の続きです。

WPFでマウススクリーン座標を取得する方法を2つ紹介します。

1.Windows Formsを使用する。System.Windows.Formsへの参照を追加します。

public static Point GetMousePositionWindowsForms()
{
    var point = Control.MousePosition;
    return new Point(point.X, point.Y);
}

2.Win32を使う

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetCursorPos(ref Win32Point pt);

[StructLayout(LayoutKind.Sequential)]
internal struct Win32Point
{
    public Int32 X;
    public Int32 Y;
};
public static Point GetMousePosition()
{
    var w32Mouse = new Win32Point();
    GetCursorPos(ref w32Mouse);

    return new Point(w32Mouse.X, w32Mouse.Y);
}