У меня есть следующее простое приложение wpf:
App.xaml:
<Application x:Class="TestWpf2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Application>
App.xaml.cs:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
var parentWindow = new Window();
parentWindow.Show();
var childWindow1 = new Window { Owner = parentWindow };
childWindow1.Show();
var childWindow2 = new Window { Owner = parentWindow };
childWindow2.Show();
}
}
Приложение вызывает появление 3 окон на экране. Если вы запустите приложение и закройте два дочерних окна, родительское окно будет сведено к минимуму на панели задач. Если вы закомментируете childWindow2.show()
, запустите приложение и закройте одно дочернее окно, родительское окно не будет сведено к минимуму на панели задач.
Я могу добавить следующий код для решения этой проблемы:
childWindow1.Closing += delegate(object sender, CancelEventArgs ex)
{
(sender as Window).Owner = null;
};
но я не хочу использовать такой хак, и я хочу понять, почему эта проблема возникает.
Почему это происходит?