所以我意识到这是一个经常被问到的错误,我已经从谷歌阅读了很多结果,但我仍然无法弄清楚它如何适用于我的情况。
设置:我创建一个窗口来呈现视图。我创建了第一个视图的实例并将窗口的 Content 属性设置为视图。目前我的每一个观点都是一个窗口本身。这在 7/10 计算机上完美运行。但是,由于某些原因,在一些计算机上(已验证正确的 .NET 版本),切换到第二个视图(创建第二个视图的实例并将窗口的 Content 属性设置为第二个视图)会引发 System.InvalidOperationException Specified element is already另一个元素的逻辑子元素。先断开它。
我读到使用 ContentTemplate 而不是 Content 可以解决问题,但这只会产生一个空白屏幕而不是第二个视图(我确定我做错了)。
我还读到您应该使用 UserControl 而不是 Window 作为 Window 的 Content 属性,所以我正在尝试(我没有出现此错误的计算机,所以我必须等待收到有关成功的回复)。但在我看来,这并不会真正改变任何事情。
任何想法为什么这只发生在某些计算机上,以及如何解决它的任何想法?
编辑:将视图更改为 UserControls 并没有解决问题
编辑:我意识到我说错了。我没有将主窗口的内容设置为窗口,而是将其设置为第二个窗口的内容。就像:
MainWindow.Content = nextScreen.Content;