2011-07-08 71 views
14

我是新来的WPF,所以这可能是一个非常容易的问题。我用ShowDialog()打开一个对话窗口。然后,如果我点击另一个全屏的窗口或只是覆盖我的对话框,很难再回到对话框。显示在任务栏中的图标将我带回到主WPF窗口,但对话框保持隐藏在其他窗口后面。我必须将阻塞窗口或Alt-Tab最小化到我的应用程序中(这将显示对话框,但隐藏主窗口)。对话框窗口在其他窗口后面丢失

为窗口的定义是这样的:

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

我打开它想:

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

回答

18

你应该设置你的对话窗口的所有者。像这样的东西。

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

这样做。谢谢! – Jason

+0

不客气。 –

+0

有什么方法可以更自动化吗?将它作为参数传递可能是一个参数,但可能会有更好的参数? – bytecode77