c# - superposicion - Buscando una buena solución WPF para una superposición de clics transparente
superposición de pantalla samsung j7 (1)
Para abordar la parte 1: establezca IsHitTestVisible="False"
en su superposición, ya sea un rectángulo, un borde o algún otro elemento. Esto le permitirá realizar cualquier color y nivel de transparencia que desee sin afectar la interacción con los controles subyacentes.
Parte 2: no deberías usar una ventana separada. Si mantiene la superposición en la ventana principal, puede confiar en el diseño de su vista para manejar automáticamente el tamaño de la superposición.
Quiero probar algo diferente, y estoy intentando mostrar una superposición sobre mi GUI de WPF actual que permite al usuario interactuar con la GUI, pero proporciona una capa de molestia para hacerles saber que algo está pasando.
Mi pregunta es realmente dos preguntas separadas:
1. ¿Cómo harías la superposición?
Mi primer intento fue usar un Rectángulo, establecer el Relleno al color apropiado, y luego cambiar la Opacidad. Pero no es transparente para los clics de destino. Así que creo que lo que quiero hacer, de acuerdo con los resultados de búsqueda, es crear una ventana separada, establecer su fondo en Transparente, y luego establecer AllowsTransparency en True. Mientras esto funciona, si quiero hacer algo como Background="DarkRed" Opacity="0.2"
, los clics ya no funcionan .
Y esto me lleva a la segunda parte:
2. ¿Cuál es la forma correcta de cambiar el tamaño de esta región de superposición si estoy usando MVVM?
Mi ventana principal crea ViewModel, que crea el Modelo. El modelo es lo único que sabe si se debe mostrar o no la superposición. Pero la ventana principal obviamente es lo único que conoce su tamaño, y el Modelo nunca sabe nada sobre eso. ¿Es la única forma de lograr esto para vincular el tamaño de la ventana de superposición a las propiedades en el modelo de vista y luego tener el modelo de vista establecido estos valores cada vez que cambia el tamaño de la ventana principal?
¿Alguien tiene pistas sobre cómo puedo lograr todas estas cosas?