ejemplo dialogbox c# wpf modal-dialog

c# - dialogbox - ¿Ventana de WPF completamente modal?



messagebox c# (2)

Use el método Window.ShowDialog() . Más información se puede encontrar aquí

Ver el segundo comentario por sixlettervariables.

Tengo un requisito que especifica que una aplicación de bandeja de notificación que utiliza WPF debe (en algunas condiciones) abrir una ventana que sea globalmente modal. Esto debería evitar que el usuario haga algo (incluso fuera de la aplicación Tray) hasta que haya satisfecho algunas otras condiciones, momento en el que habilitará el botón de cierre y permitirá que el usuario lo cierre.

¿Cómo se puede hacer una ventana? Tengo la ventana que muestra y evalúa las condiciones y otras cosas, pero solo es modal para la aplicación (es decir, solo bloquea la ejecución y la IU de la aplicación bajo la que se ejecuta).

Me imagino que podría crear una ventana sin bordes y tal vez desactivar la funcionalidad de minimizar, pero aún podrían acceder al menú de inicio. ¿Ningún arrendatario? Lo que me esfuerzo por la funcionalidad es similar a la ventana de solicitud de privilegios de Windows UAC / Admin.

Esto no es un duplicado de la pregunta proporcionada por el cuadro duplicado en la parte superior. Esa pregunta pertenece a Windows Forms y no es aplicable a WPF. Sucede que recibí una respuesta que funcionó bien para mí, y no fue la respuesta a la pregunta proporcionada anteriormente. No es que realmente importe, pero me gustaría quitar la etiqueta duplicada. Me gusta pensar que investigo mis preguntas bastante bien antes de publicarlas, y agregar esa etiqueta implica que no lo hago.

EDITAR

Esta pregunta no es un duplicado de la pregunta que estaba vinculada al cuadro de Preguntas duplicadas. Esa pregunta fue respondida con un sabor de Windows Forms, y estoy usando WPF, un marco de interfaz de usuario completamente diferente.


Una solución podría ser hacer una ventana WPF semitransparente que cubra toda la pantalla (en realidad debería decir: todas las pantallas) y mostrar la ventana modal usando Window.ShowDialog() siendo el propietario esa ventana. Todo lo que necesita hacer entonces es evitar el cambio de tarea (lo cual no es una tarea fácil), pero ¿quizás hacerlo es suficiente?

Algo como UAC, ¿por ejemplo, como en la respuesta a esto ?