如何将光标准确地放置在屏幕的中心

本文关键字:屏幕 光标 标准 | 更新日期: 2023-09-27 17:59:16

如何在C#中放置光标精确的屏幕中心?

无分辨率独立(可以是1024X768或1600X900)

如何将光标准确地放置在屏幕的中心

假设您只有一个监视器:

Cursor.Position = new Point(Screen.PrimaryScreen.Bounds.Width / 2,
                            Screen.PrimaryScreen.Bounds.Height / 2);

首先获取感兴趣的Screen实例。如果您只想要主监视器,那么只需请求PrimaryScreen实例即可。但是,如果您想要当前包含鼠标指针的监视器,请使用FromPoint静态方法。

    // Main monitor
    Screen s = Screen.PrimaryScreen;
    // Monitor that contains the mouse pointer
    Screen s = Screen.FromPoint(Cursor.Position);

要获得原始监视器边界,只需使用bounds实例属性。但是,如果您想要监视器的工作区域,即为任务栏和小部件分配空间后剩下的区域,则使用WorkingArea实例属性。

    // Raw bounds of the monitor (i.e. actual pixel resolution)
    Rectangle b = s.Bounds;
    // Working area after subtracting task bar/widget area etc...
    Rectangle b = s.WorkingArea;

最后将鼠标定位在计算边界的中心。

    // On multi monitor systems the top left will not necessarily be 0,0
    Cursor.Position = new Point(b.Left + b.Width / 2,
                                b.Top + b.Height / 2);

尝试

        var r = Screen.PrimaryScreen.Bounds;
        System.Windows.Forms.Cursor.Position = new Point(r.Bottom/2,r.Right/2);