Ответ 1
Это невозможно. AdornerLayer
ограничивается пределами AdornerDecorator
(Window
имеет один, если вы его не определили), поэтому просто невозможно выйти за пределы этого декоратора.
Вы можете получить то, что хотите, с помощью Popup
(MSDN), который определяет всплывающее окно, но определенно не использует adorner, Основное различие заключается в том, что всплывающее окно не является частью визуального дерева окна, поэтому оно не будет перемещаться и не изменяться вместе с ним.
Вы также можете определить свое собственное всплывающее окно, если хотите, чтобы эффекты, которые попадали на рабочий стол (например, тень, которую вы показываете). Это было бы действительно сложно, но выполнимо. С большой работой вы можете заставить его перемещаться и изменять размер вместе с вашим окном (таким образом, эмулируя "из окна adorner" ), но это определенно не будет быстрым или легким для кода (для обычного Popup
, хотя, вы можете просто подключиться к событиям Window
SizeChanged
и LocationChanged
и соответственно перемещаться)