在主窗口中显示不同wpf页面的更好方法?

在主窗口中显示不同wpf页面的更好方法?,wpf,user-interface,Wpf,User Interface,我的项目中有几个Wpf页面,这些页面有不同的表单和ui控件。下图显示了主窗口,有两个按钮。 我想在单击+或使用突出显示的框架控件编辑按钮时显示特定页面 很明显,这个锅: Page1 me = new Page1(); mainFrame.Content = me; 但它有一个IE导航声音,进入第2页后会出现一个工具栏。 有没有更好的方法来显示不同的页面而不使用框架 框架控件的目的是允许导航。如果不需要导航,则不要使用Frame。您可以关闭导航工具栏,但这实际上不会禁用导航-有用于返回导航的

我的项目中有几个Wpf页面,这些页面有不同的表单和ui控件。下图显示了主窗口,有两个按钮。 我想在单击+或使用突出显示的框架控件编辑按钮时显示特定页面

很明显,这个锅:

Page1 me = new Page1(); 
mainFrame.Content = me; 
但它有一个IE导航声音,进入第2页后会出现一个工具栏。 有没有更好的方法来显示不同的页面而不使用框架


框架控件的目的是允许导航。如果不需要导航,则不要使用
Frame
。您可以关闭导航工具栏,但这实际上不会禁用导航-有用于返回导航的鼠标按钮和键盘快捷键


如果您只想在没有导航的情况下托管UI元素,请使用更简单的方法,例如
边框
元素-将内容放入其
子属性中。您可以在运行时随意多次更改
子控件。

您可能希望将
页面
转换为
用户控件
。然后,可以将该控件放在其他容器中,例如
网格
。导航时,您必须手动调出容器中的页面,但看起来您仍在这样做。

我能够将框架控件的NavigationUIVisibility设置为Hidden。这为我解决了问题。我使用的是Visual Studio 2010,因此它可能不适用于较旧的VS版本。

Ian Griffiths,您的建议大大增加了开发人员的工作量。您正在超越XAML的基本范式

在我的例子中,我正在开发一个游戏应用程序,并尽可能选择WPF作为UI平台。对我来说,这意味着介绍屏幕、字符选择等。页面的目的是封装这样一个应用程序的导航需求

我怀疑你的否决票是因为你说“如果你不想导航…”。在重新阅读了最初的海报问题后,我发现他确实想要导航,他只是想按照自己的方式导航。我也会投票否决你的。YotaXP的解决方案忽略了使用用户控件的问题,特别是当它可能包含其他用户控件时。看起来克里斯·卡尔弗特(Chris Calvert)在问题的范围内提出了海报问题的实际解决方案


如果我可以在现有paragimn中覆盖导航热键之类的内容,我会很好奇,但这完全是在它自己的线程中

我得到了这个错误:“页面只能有窗口或框架作为父对象。”我假设YotaXP的回答解决了您在评论中提出的问题?不太清楚为什么有人对此投了反对票。(当我写这篇文章时,它有+1和-1。)我写的是正确的,@Alexandergre在回答时提出的问题完全由YotaXP的建议解决。所以这里的解决方案是我所说的(不要把它放在框架中)和@YotaXP所说的(不要把它变成一个页面)的结合。如果投票否决我的人看到了我的回答,你能补充一条评论说你认为我的答案有什么错误吗?有什么实质性的额外工作?将
用户控件
设置为
边框的内容
所需的代码量(1行)与将
页面
设置为
框架
的内容所需的代码量完全相同。唯一的区别是,使用
框架
,您可以获得导航支持。问题是对导航功能的抱怨。(我真的不明白你怎么得出结论说他想要导航,特别是考虑到他接受的答案。)注意,我还指出,如果他想要不带按钮的导航,他可以选择只关闭导航工具栏(Chris Calvert提供了更多细节)。YoteXP给出了解决方案