需要在.转义.dll或其他东西来改变WPF中的鼠标光标

Jef*_*mer 0 .net c# wpf pinvoke

我试图覆盖整个计算机的光标this.Cursor = Cursors.Pen; System.Windows.Input.Mouse.OverrideCursor = Cursors.Pen;

这适用于WPF"窗口",但不在其他任何地方.

什么.dll会让我这样做?

Ree*_*sey 6

这种行为是设计的,也是一件好事.

查看本机例程,例如SetCursor,您将看到:

游标是共享资源.仅当光标位于其客户区域或窗口捕获鼠标输入时,窗口才应设置光标形状.在没有鼠标的系统中,窗口应该在光标离开客户区之前或在将控制权交给另一个窗口之前恢复前一个光标.

您不应该尝试覆盖其他应用程序的游标.这样做是系统中的坏公民.只要您的应用程序处于活动状态,或者您有一个窗口捕获鼠标输入,您设置的光标Mouse.OverrideCursor将保持活动状态.


但是,鉴于你真的不在乎打得好,你总是可以全力以赴,让你的程序接管系统.只需将主窗口作为全屏应用程序运行,在系统上的每个监视器上都有一个窗口,并将它们全部设置为Topmost.设置光标,鼠标永远不会离开窗口.

当你在它的时候,你应该考虑从StackOverflow用户页面下载一堆漂亮的独角兽图像,并用它们平铺窗口的背景.这确实会为用户的桌面添加一个漂亮,微妙的效果.