Я могу придумать два способа достижения этого эффекта (непрямоугольное полупрозрачное наложение поверх окна, которое выходит за границы окна).
Первый вариант, НЕ ИСПОЛЬЗУЙТЕ ЭТО В КОДЕКЕ ПРОИЗВОДСТВА (AllowTransparency медленная и очень глючная) - Сделайте окно больше, чем фактическое содержимое, установите AllowsTransaprencey = "True", чтобы область "снаружи" окна была прозрачной Теперь все, что вам нужно сделать для всплывающего окна, это добавить еще один визуал в тот же контейнер, что и «окно».
Второй вариант, используйте всплывающее окно, вам нужно будет аккуратно расположить свое всплывающее окно, вызвать SetWindowRgn через interop, чтобы сделать его не прямоугольным, и вызвать функцию Win32 API, которая устанавливает значение прозрачности (извините, в настоящее время имя не запоминается ) сделать его полупрозрачным.
Первый вариант прост в реализации и будет выглядеть лучше, чем второй, но он медленнее, и вы столкнетесь со всевозможными странными ошибками (включая проблемы с некоторыми драйверами дисплея) - я знаю это по опыту, когда я переключился программное обеспечение, которое я продаю из AllowTransparency для SetWindowRgn, 90% отчетов о сбоях исчезли.
Второй вариант требует много собственных вызовов Win32 API, но он должен работать.