今さら(今こそ?)Win32関数 プロセスのウインドウ外のマウスカーソルを変更するSetSystemCursor()、元に戻すSystemParametersInfo(SPI_SETCURSORS)

WPFではアプリ自身のWindow外のマウスカーソルは変更できません。P/Invoke + Win32関数を使う必要があります。

カーソル設定はこれ
SetSystemCursor()
デスクトップ全体に効くので、うっかり変えるとマウス操作できなくなるのでご注意を。OSリブートすればマウスカーソル戻ります。

戻すのはこれ SystemParametersInfo()でSPI_SETCURSORSを指定。こんな感じで

SystemParametersInfo(SPI_SETCURSORS, 0, NULL, 0);

ああ結局最後はWin32なのだ。WPFというか、.NetがきっちりWin32にも追従してほしいけど、このあたりはしょうがないか。
うーんでもWPFよ、かゆいところに手が届かない感どうにかならんのか。そしてこのまま主役になれないのだろうなぁ... (遠い目)。