如何导航到metro应用程序中的新页面?

时间:2011-10-26 02:39:06

标签: c# windows-8 microsoft-metro

现在尝试用C#编写一个metro应用程序。尝试导航到新页面时遇到问题。

<HyperLinkButton NavigateUri="foo.xaml"/> 

不起作用,因为NavigateUri字段不存在。 Windows.Navigate命名空间也不可用,所以没有运气。在我的应用程序中使用metro的正确方法是什么?

4 个答案:

答案 0 :(得分:6)

您可以处理Button控件的Click事件(事实上,您可以使用具有以下代码的所有事件),因为Metro的HyperLink按钮仅继承ButtonBase类而没有任何特殊属性或事件,例如NavigateUri。

如果您要导航到metro应用中的其他页面,请在.xaml页面中添加一个框架,并将此代码放在按钮的事件处理程序中:

this.Frame.Navigate("VideoStoryCreator.ComposePage");

答案 1 :(得分:5)

导航到另一个页面有两种方法 -

  • 客户端应用方式 - &gt;

您将在点击事件中实现此功能 -

var page = new PageName();
Window.Current.Content = page;

  • 类似于Silverlight Navigation

如果您正在使用框架/页面导航,那么您可以这样做 -

使用声明的元素创建一个shell页面(母版页)。然后,而不是使用create创建新页面。 最简单的方法是将UserControl替换为Page

本教程中对此进行了很好的解释 - http://www.markermetro.com/2011/11/technical/windows-8-metro-style-apps-implementing-navigation-with-xaml/

希望它有所帮助!

此致 Bhavik

答案 2 :(得分:3)

处理按钮上的Click事件,然后调用Frame上的Navigate方法

答案 3 :(得分:-1)

只需在点击事件中输入以下代码

即可
this->Frame->Navigate(TargetPageName::typeid,this);