获取“无法在窗口关闭后设置可见性或调用Show或ShowDialog”。在主窗口.ctor和Loaded之后

时间:2009-04-22 13:51:14

标签: c# wpf

嘿大家,我遇到了一个棘手的问题。

对于这个窗口:

<Window x:Class="Host.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        WindowStyle="ToolWindow" Top="-5000" Left="-5000" Width="0" Height="0"
        ShowInTaskbar="False"
        Loaded="Window_Loaded"
        />

“窗口关闭后无法设置可见性或调用Show或ShowDialog”。在.ctor和Window_Loaded之间抛出异常。这只发生在独立运行时,而不是VS. .ctor如下:

    public MainWindow()
    {
        InitializeComponent();
        MessageBox.Show("1");
    }

当MessageBox不存在时,不会发生异常,应用程序在启动后立即关闭,如果它不存在,但它仍然没有进入Window_Loaded处理程序。它不会从我的代码中抛出任何异常,它来自于尝试从PresentationFramework.dll调用Window.VerifyCanShow()的应用程序。

任何想法?

3 个答案:

答案 0 :(得分:1)

从你发布的例外情况来看,某个地方某个窗口正在关闭。我无法从你发布的代码中看出来。

关闭窗口后,您必须重新分配窗口以再次“显示”它。你可以隐藏它然后再显示它没有任何问题。我确信这是有充分理由的,但如果我知道的话,我会大胆的。无论如何,这就是例外的大喊大叫。

可能是你的左右位置使它与你的宽度和高度(0像素)结合(-5000像素)。

答案 1 :(得分:0)

我怀疑您的Main方法可能有问题。 它通常在Program.cs内找到。发布它,以便我们可以看到是否有任何错误。

答案 2 :(得分:0)

不,整个问题是我真的非常愚蠢。当我打开VS并杀死应用程序时,我的单例代码看到VShost.exe正在运行。