我的项目中有几个Wpf页面,这些页面有不同的形式,ui控制着indide主题。下图显示了mainWindow,有两个按钮。 当我使用突出显示的Frame控件单击+或Edit按钮时,我想显示一个特定的页面。
很明显这个问题:
Page1 me = new Page1();
mainFrame.Content = me;
但它有一个IE导航声音,并在转到page2后出现一个工具栏。 有没有更好的方式来显示不同的页面而不使用框架?
答案 0 :(得分:6)
您可能希望将Page
转换为UserControl
。然后,您可以将该控件放在其他容器中,例如Grid
。在导航时你必须手动换出容器中的页面,但看起来你还是这么做。
答案 1 :(得分:1)
Frame
控件的目的是允许导航。如果您不想要导航,请不要使用Frame
。您可以关闭导航工具栏,但实际上不会禁用导航 - 还有用于导航的鼠标按钮和键盘快捷键。
如果您只想托管没有导航的UI元素,请使用更简单的内容,例如Border
元素 - 将内容放在其Child
属性中。您可以在运行时多次更改Child
。
答案 2 :(得分:1)
我能够将帧控件的NavigationUIVisibility设置为Hidden。这解决了我的问题。我使用的是Visual Studio 2010,因此它可能不适用于较旧的VS版本。
答案 3 :(得分:0)
Ian Griffiths,你的建议大大增加了开发人员的工作量。而且你正在走出XAML的基本范式之外。
在我的情况下,我正在开发一个游戏应用程序,并尽可能选择WPF作为UI平台。对我来说,这意味着介绍屏幕,字符选择等.Pages的目的是封装这种应用程序的导航需求。
我怀疑你的downvote是由你的声明“如果你不想导航......”。在重新阅读原始海报问题时,我发现他 想要导航,他只是想按照自己的意愿。我也会投票给你。 YotaXP的解决方案忽略了使用用户控件的问题,特别是如果它可能包含其他用户控件。看起来Chris Calvert在问题的参数范围内提出了海报问题的实际解决方案。
如果我可以覆盖现有的paragimn中的导航热键,但是在它自己的线程中正确的话,我会很好奇。