2009-04-22 3 views
0

Эй, все, я столкнулся с проблемой.Получение «Невозможно установить видимость или вызвать Show или ShowDialog после закрытия окна». После основного окна .ctor и Loaded

Для этого окна:

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

«Нельзя установить видимость или позвонить Показать или ShowDialog после закрытия окна.» Исключение возникает между .ctor и Window_Loaded. Это происходит только тогда, когда он запускается автономно, а не с VS. .ctor выглядит следующим образом:

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

Исключение не возникает, когда MessageBox не существует, то приложение просто закрывается сразу после запуска, если он не существует, но это еще не делает его к Обработчик Window_Loaded. Он не выдает никаких исключений из моего кода, это происходит из приложения, пытающегося вызвать Window.VerifyCanShow() из PresentationFramework.dll.

Любые идеи?

+0

Я не могу воспроизвести проблему. Код, который у вас там, отлично работает на моей машине. Любая другая информация, которую вы можете дать? –

ответ

1

Из-за исключения, которое вы опубликовали, каким-то образом окно закрывается. Я не могу сказать из кода, который вы опубликовали.

После того, как окно было закрыто, вы должны перераспределить его, чтобы «показать» его снова. вы можете скрыть его, а затем показать его снова без каких-либо проблем. Я уверен, что для этого есть веская причина, но я проклят, если знаю. Во всяком случае, это то, о чем кричит исключение.

Это могут быть ваши левые и правые положения, которые делают его близким (-5000 пикселей) в сочетании с вашей шириной и высотой (0 пикселей).

+0

Я не закрываю/не скрываю никаких окон, это происходит до того, как главное окно даже покажет. – scmccart

0

Я подозреваю, что что-то может быть неправильным с вашим методом Main. Обычно он находится в пределах Program.cs. Отправьте его, чтобы мы могли увидеть, что там что-то не так.

0

Нет, вся проблема была в том, что я был действительно, действительно глупым. Мой сингл-код показывал, что VShost.exe работает, когда у меня открыто VS, и убивает приложение.

Смежные вопросы