2009-06-16 15 views
12

Tengo mi Ventana de aplicación principal que inicia una nueva ventana con .ShowDialog() para que sea modal.¿Cómo puedo enfocar una ventana modal de WPF cuando se hace clic en la ventana principal de la aplicación?

UploadWindow uploadWindow = new UploadWindow(); 
uploadWindow.ShowDialog(); 

Ahora los usuarios suelen dejar esta ventana abierta y puede perderse en otras ventanas. Cuando se hace clic en MainApplication se obtiene un pitido similar a un error y no se puede interactuar con él, por lo que la ventana modal se bloquea correctamente como se esperaba, pero sería bueno si la ventana modal se centrara en este punto para mostrar al usuario que era Sigue abierto.

Actualmente parece que la ventana MainApplication se ha bloqueado.

Respuesta

24

Intente configurar el dueño del diálogo:

var uploadWindow = new UploadWindow(); 
uploadWindow.Owner = this; 
uploadWindow.ShowDialog(); 
+0

Justo lo que estaba buscando. –

+2

Me parece un poco extraño que la propiedad Owner no esté configurada de manera predeterminada. Gracias por la sugerencia, podría ser útil algún día. – Oskar

+0

← Esto. En serio, ¿qué quieres decir con "esto"? –

2

tengo el problema, que no puedo usar esto, si alguien tiene el mismo problema, puede utilizar

Window.GetWindow(this) 
0

Si todos las soluciones anteriores intentaron y todavía enfrentan el mismo problema entonces aquí está su solución probada y verificada vaya a su ventana xaml y agregue

ResizeM ode = "NoResize"

+0

¿Eso causa que el diálogo modal subyacente se enfoque? –

+0

Sí, me enfrenté al mismo problema, intenté por encima de todas las sugerencias, pero no funcionó, simplemente cambié ResizeMode y objForm.ShowDialog(); trabajó –

1

Como uso MVVM, no estoy creando el código de la GUI. Usé esto.

var uploadWindow = new UploadWindow(); 
uploadWindow.Owner = Application.Current.MainWindow; 
uploadWindow.ShowDialog(); 
Cuestiones relacionadas