【发布时间】:2014-08-22 06:27:36
【问题描述】:
我有三个窗口。 FirstWindow、SecondWindow 和 ThirdWindow。 FirstWindow 有按钮,单击此按钮会打开SecondWindow。类似地,SecondWindow 有按钮,单击此按钮会打开ThirdWindow。 SecondWindow 的Owner 属性设置为FirstWindow,ThirdWindow 的Owner 属性设置为SecondWindow。场景描述问题:
连续打开所有窗口。它看起来像这样:
然后点击ThirdWindow右上角的相应图标最小化所有窗口。
如果您尝试通过单击任务栏中的FirstLevelWindow 或ThirdLevelWinow 来最大化所有窗口 - 一切都会好的,三个窗口将被最大化。但是如果你点击SecondWindow你会看到这个:
我该如何修复它,或者它只是 WPF 错误?如果有帮助,我可以提供存档的示例项目。
更新
最小化窗口 - 点击“_”图标,窗口图标栏中的左侧图标。所有窗口都是模态的,即它使用ShowDialog() 方法打开,而不是Show() 方法打开。因此,如果您最小化第三个窗口 - 所有窗口都将被最小化。
这里如果你不想通过链接下载项目的代码:
FirstWindowXAML:
<Button Click="OpenChildWindow"
Content="ChildWindow"/>
FirstWindow.cs:
private void OpenChildWindow(Object sender, RoutedEventArgs e)
{
var window = new SecondLevelWindow();
window.Owner = this;
window.ShowDialog();
}
SecondWindowXAML:
<Button Click="OpenChildWindow"
Content="ChildWindow"/>
SecondWindow.cs:
private void OpenChildWindow(Object sender, RoutedEventArgs e)
{
var window = new ThirdLevelWindow();
window.Owner = this;
window.ShowDialog();
}
ThirdWindow 是没有任何内容的空窗口。
这里 link 示例项目
我刚刚发现,如果 ThirdWindow 的属性 ResizeMode 设置为“NoResize”,则不会重现该错误。 Mb 这将是有用的信息。
【问题讨论】:
-
“然后通过点击ThirdWindow右上角的相应图标最小化所有窗口”是什么意思?如果你这样做,我希望只有第三个窗口被最小化。另外,您如何将它们显示为模态或非模态?
-
@Adrian Faciu,请参阅更新
-
无法在 Windows 8 上重现此问题,如果我最小化第三个窗口,其他两个窗口都不会受到影响。
-
@Adrian Faciu,“其他两个都没有受到影响”是什么意思?只有第三个窗口最小化? O_o。如果您有兴趣,我可以提供示例项目。
-
@monstr,我认为 其他两个都不受影响 是不言自明的。这意味着第三个
Window被最小化了,而另外两个没有。