В книге «C# Советы программистам» понравился любопытный пример для WinForms. Как можно ограничить пространство движения мыши внутри контрола. Всё просто. Для этого нужно поставить обработчик мыши MouseEnter на необходимый контрол, а затем внутри блока ввести:
Cursor.Clip = RectangleToScreen(new Rectangle(control.Location, control.Size));
Никто не мешает улучшить пример, изменив прямоугольную область на абсолютно любую — круг, многоугольник.