2011-07-08 3 views
14

Je suis nouveau sur WPF, donc c'est probablement un problème assez facile. J'ouvre une boîte de dialogue en utilisant ShowDialog(). Ensuite, si je clique dans une autre fenêtre qui est en plein écran ou couvre simplement ma boîte de dialogue, il est difficile de revenir à la boîte de dialogue. L'icône qui apparaît dans la barre des tâches me ramène à la fenêtre principale de WPF mais la boîte de dialogue reste cachée derrière l'autre fenêtre. Je dois soit minimiser la fenêtre de blocage ou Alt-Tab dans mon application (ce qui montrera la boîte de dialogue mais laisse la fenêtre principale cachée).La fenêtre de dialogue est perdue derrière d'autres fenêtres

La définition de la fenêtre ressemble à:

<Window x:Class="MyProject.MyWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     ResizeMode="CanResizeWithGrip" 
     ShowInTaskbar="False" 
     WindowStartupLocation="CenterOwner" 
     Width="750" 
     Height="565" 
     Title="MyWindow"> 

Je l'ouvrir comme:

var dlg = new MyWindow(); 
if (dlg.ShowDialog() != true) 
    return; 

Répondre

18

Vous devez définir le propriétaire de la fenêtre de dialogue. Quelque chose comme ça.

var dlg = new MyWindow(); 
dlg.Owner = this; 
if (dlg.ShowDialog() != true)  
    return; 
+0

C'est fait. Merci! – Jason

+0

Vous êtes les bienvenus. –

+0

Y a-t-il un moyen plus automatisé? Le passer en paramètre pourrait en être un, mais il pourrait y en avoir un meilleur? – bytecode77

Questions connexes