0

我不知道为什么我很难找到答案。本质上,就像在 Windows 窗体中一样,我创建了一个页面的新对象,然后显示它。

但是你不能在 WPF 中这样做,所以相反,我将主页的内容设置为创建的对象的内容。

这一切都很好,但是当我想关闭新打开的页面时,我不能。我显然不能做这样的事情。关闭。而且我没有参考 MainWindow,所以我不能重新设置内容?

请帮忙,我很困惑!

更多细节...

抱歉,这不是最明确的问题。在我的主窗口中,我有

Page1 mainMenu = new Page1();

this.Content = mainMenu;

这会打开我的新页面,就像一个新窗口一样,但实际上并没有加载一个新窗口,这实际上很棒!

但是,我的当前页面现在具有 Page1 的内容。因此它运行代码并显示 Page1 中的内容。

在第一页中,如何将内容返回到 MainWindow?我已经尝试了很多基本上都会出错的事情 -

“遍历树时超出了逻辑树深度。这可能表明树中有一个循环。”

4

4 回答 4

2

“基本上,就像在 Windows 窗体中一样,我创建了一个页面的新对象,然后显示它。但是你不能在 WPF 中这样做,所以相反......”那个陈述/问题是模糊的。您知道可以在 NavigationWindow 中打开页面吗?

    NavigationWindow win = new NavigationWindow();
    win.Content = new pageWFbchAdmin();
    win.Show();
于 2011-07-28T17:04:58.837 回答
1

Page 一般用在 Frame 或 NavigationWindow 中。在那里,您可以在页面之间导航。

您的代码已替换窗口的内容,并且窗口中没有导航功能。您可以做的是打开一个新窗口并关闭当前窗口,或者将其他内容设置为窗口的 Content-property。

IMO 您正在混合不同的 UI 技术。如果您想制作类似浏览器的应用程序,请查看NavigationWindowFrame类。否则,可能最好不要使用页面对象,而是使用用户控件。也许这个链接会帮助你。

于 2011-07-28T16:14:09.950 回答
0

我可能误解了您要执行的操作,但我想知道您是否真正想要将 Page 设置为 Window,然后使用 Window.ShowDialog 方法显示它。

这样,它的行为就像一个模态对话框,听起来有点像你在问题开头所描述的。

或者,您可以尝试将主要内容和页面内容都放在 MainWindow 中,而不是替换主窗口的内容......在彼此顶部的单独面板中,然后切换每个面板的可见性以显示/隐藏所需的内容。

于 2011-07-28T17:08:09.380 回答
0

Page 可能没有 Close 方法,但 NavigationWindow 有 Close 方法。页面是内容(不是视觉主机)。

于 2011-07-29T02:08:05.303 回答