5

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

<HyperLinkButton NavigateUri="foo.xaml"/> 

不起作用,因为 NavigateUri 字段不存在。Windows.Navigate 命名空间也不可用,所以那里没有运气。在 Metro 的应用程序中转到新页面的正确方法是什么?

4

4 回答 4

6

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

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

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

于 2011-10-31T03:27:37.613 回答
5

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

  • 客户端应用方式->

您将在点击事件中实现这一点 -

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

  • 类似于 Silverlight 导航

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

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

本教程很好地解释了这一点 - http://www.markermetro.com/2011/11/technical/windows-8-metro-style-apps-implementing-navigation-with-xaml/

希望能帮助到你!

问候, 巴维克

于 2012-02-12T13:41:26.567 回答
3

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

于 2011-10-26T02:44:14.663 回答
-1

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

this->Frame->Navigate(TargetPageName::typeid,this);
于 2012-08-10T10:46:19.940 回答