2011-07-08 9 views
14

Jestem nowy w WPF, więc jest to prawdopodobnie dość łatwy problem. Otwieram okno dialogowe za pomocą ShowDialog(). Następnie, jeśli kliknę w inne okno, które jest w trybie pełnoekranowym lub po prostu zakrywa moje okno dialogowe, trudno jest wrócić do okna dialogowego. Ikona wyświetlana na pasku zadań przenosi mnie z powrotem do głównego okna WPF, ale okno dialogowe pozostaje ukryte za drugim oknem. Muszę albo zminimalizować okno blokujące, albo Alt-Tab z powrotem do mojej aplikacji (która wyświetli okno dialogowe, ale pozostawi ukryte okno główne).Okno dialogowe zostaje zgubione za innymi systemami Windows

Definicja za oknem wygląda następująco:

<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"> 

jestem otwierając go lubię:

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

Odpowiedz

18

Należy ustawić właściciela okna dialogowego. Coś takiego.

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

To się udało. Dzięki! – Jason

+0

Nie ma za co. –

+0

Czy jest jakiś sposób, który jest bardziej zautomatyzowany? Podanie go jako parametru może być jednym, ale może być lepszy? – bytecode77