在我的场景中,我有一个窗口,我想用它以两种不同的方式显示。窗口具有WindowState = WindowState.Normal;
的一种方式和窗口具有正常或最大化状态的另一种方式。我想保存这两种窗口模式的大小和位置,因此对于用户来说,它看起来像是两个单独的窗口。
我有两个不同的问题。
1) 当我在调用 Show() 后初始化窗口时,有一个小闪烁,在较慢的机器上不是这么短的闪烁。为了解决这个问题,我想在隐藏时设置窗口,如下所示:
((SecondWindowViewModel)this.DataContext).LoadWindowPosition(mode);
this.Show();
如果我这样做,就会出现更糟糕的问题
2)在这种情况下,在窗口 2 以最大化模式关闭后,处于正常模式的窗口 1 在拖动时设置了一些随机高度。
我创建了一个示例应用程序,您可以在此处找到,您可以在其中看到确切的问题,我还写下了重现的步骤。
编辑
实施了 Maxims 更改并删除了不必要的引用