我有以下简单的 wpf 应用程序 :
App.satml : 添加数 :
<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.squml.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;
};
但我不想用这样的黑客, 我想知道为什么这个问题会发生。
为什么会发生这种事?