WPFではアプリ自身のWindow外のマウスカーソルは変更できません。P/Invoke + Win32関数を使う必要があります。
カーソル設定はこれ
SetSystemCursor()
デスクトップ全体に効くので、うっかり変えるとマウス操作できなくなるのでご注意を。OSリブートすればマウスカーソル戻ります。
戻すのはこれ SystemParametersInfo()でSPI_SETCURSORSを指定。こんな感じで
SystemParametersInfo(SPI_SETCURSORS, 0, NULL, 0);
ああ結局最後はWin32なのだ。WPFというか、.NetがきっちりWin32にも追従してほしいけど、このあたりはしょうがないか。
うーんでもWPFよ、かゆいところに手が届かない感どうにかならんのか。そしてこのまま主役になれないのだろうなぁ... (遠い目)。