WPF Adorner Layer fuera de la ventana
(1)
No es posible. AdornerLayer
limita a los límites de un AdornerDecorator
(la Window
tiene uno si no lo ha definido), por lo que no es posible salir de los límites de ese decorador.
Puede obtener lo que desea utilizando una ventana Popup
( MSDN ) que define una ventana emergente, pero definitivamente no usa un adornador. La principal diferencia es que la ventana emergente no forma parte del árbol visual de la ventana, por lo que no se moverá ni cambiará de tamaño junto con ella.
También puede definir su propia ventana emergente si desea efectos que se extiendan sobre el escritorio (como la sombra paralela que está mostrando). Eso sería ciertamente complicado, pero factible. Con mucho trabajo, también podría hacer que se mueva y cambie el tamaño junto con su ventana (emulando así un "adornador de ventana"), pero eso definitivamente no será rápido ni fácil de codificar (aunque para una ventana Popup
normal, podría simplemente enganche los eventos SizeChanged
y LocationChanged
su Window
y muévase en consecuencia)
Tengo una ventana de WPF con un control de cuadro de texto. El control tiene un adorno que se hace visible cuando el cuadro de texto tiene enfoque de teclado.
Como puede ver en la captura de pantalla de abajo, el adornador está limitado a los límites de la ventana. ¿Cómo puedo hacer que se muestre el adorno completo?
La plantilla de Adorner es:
<DataTemplate x:Key="ContextualInfoDataTemplate">
<Border
Background="#E1E1E1"
CornerRadius="6"
Margin="50,36,0,0">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
<Grid Width="200" Margin="4,3,4,4">
<TextBlock TextWrapping="Wrap" Text="OverridenAutomationId"/>
</Grid>
</Border>
</DataTemplate>