WPFのコントロール上のマウスカーソルを変更するには、QueryCursorイベントを使用します。
mShape.QueryCursor += ShapeQueryCursor;
マウスカーソルがコントロール上に移動すると、QueryCursorイベントが発生します。
引数QueryCursorEventArgsのCursorプロパティに表示するマウスカーソルを設定します。
private void ShapeQueryCursor(object sender, QueryCursorEventArgs e)
{
e.Cursor = Cursors.Cross;
e.Handled = true;
}
標準のマウスカーソルを使用する場合は、Cursorプロパティを設定しません。
private void ShapeQueryCursor(object sender, QueryCursorEventArgs e)
{
if (...)
{
e.Cursor = Cursors.Cross;
}
else
{
// 設定しない場合は標準のマウスカーソル
}
e.Handled = true;
}
なお、QueryCursorEventArgsのCursorプロパティにnullを設定した場合、Cursorプロパティの値はCursors.Noneになり、マウスカーソルは表示されません。