ShowDialog导致应用程序窗口消失在Windows的Alt-Tab列表中?

5

我是WPF的新手,想在主窗口内打开一个模态对话框:


public partial class MainWindow : Window
{
    protected void OpenCommandExecuted(object target, ExecutedRoutedEventArgs e)
    {
        DataSearchWindow w = new DataSearchWindow();

        w.Owner = this;
        w.ShowDialog();
    }
    ...
}

我的DataSearchWindow的XAML如下所示:

<Window x:Class="DataSearchWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        ShowInTaskbar='False'
        WindowStartupLocation='CenterOwner'
        WindowStyle='ToolWindow'
        ...>
...
</Window>

一切正常,直到我按下Alt-Tab切换到另一个应用程序。当我这样做时,我的应用程序从Alt-Tab显示的列表中消失了。它仍然在任务栏中,我可以使用鼠标返回它,但不能使用Alt-Tab。有人见过这种情况吗?

konstantin

1个回答

9
这是由于模态对话框 - 在对话框关闭之前,您无法使用Alt-Tab返回应用程序。由于WindowStyle设置为ToolWindow,因此它不会显示在Alt-Tab中。但是,如果它是一个普通窗口,则对话框窗口将显示在Alt-Tab中。
请注意,这不是WPF问题 - 与Windows Forms应用程序一致。

谢谢。是的,这是因为对话框的缘故。不,Alt-Tab 弹出窗口中没有任何显示。当我第一次按下 Alt-Tab 时,主窗口确实会显示在那里,但当我再次按下它时,它就消失了,我的应用程序也没有任何痕迹。关于“consistent”:哦,好的,我不知道。谢谢! - akonsu
是的,这是因为您的对话框被设置为工具窗口(第一次没有注意到 - 我会更新我的答案)。再次强调,这与WinForms一致。 - Wonko the Sane
谢谢。我移除了ToolWindow样式,现在它显示出来了。这个方法可行。 - akonsu
谢谢!我为我的Windows Forms应用程序编写了一个错误报告。将FormBorderStyle从SizableToolWindow更改为仅Sizable解决了问题。 - user171197

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接