我想将应用程序栏添加到我的应用程序的多个页面。因此,我将应用程序栏定义为应用程序资源,以便它可以被多个页面使用。现在,这些按钮的事件处理程序位于App
这里提到的类http://msdn.microsoft.com/en-us/library/hh394043%28v=VS.92%29.aspx http://msdn.microsoft.com/en-us/library/hh394043%28v=VS.92%29.aspx。
但是,这些应用程序栏按钮基本上是重要页面的快捷方式。因此,单击按钮只会将您带到相应的页面。但是,由于我在中定义事件处理程序App.xaml.cs
,它不允许我导航。我明白其中的原因。但是,我不知道如何解决这个问题。
NavigationService.Navigate(new Uri("/Counting.xaml", UriKind.RelativeOrAbsolute));
说“非静态字段、方法或属性 System.Windows.Navigation.NavigationService.Navigate(System.Uri) 需要对象引用”
如果您可以访问该框架,它会起作用吗?
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/Counting.xaml", UriKind.RelativeOrAbsolute));
编辑:
每个应用程序只有一个Frame http://msdn.microsoft.com/en-us/library/ff402536%28v=vs.92%29.aspx。正是这个框架暴露了NavigationService
。因此,NavigationService 始终可以通过框架访问,因为任何 Windows Phone 应用程序中始终存在它的实例。因为你通常不会实例化一个新的NavigationService
,很容易认为它是一个静态方法。然而,它实际上是一个非静态类,在您的应用程序运行时会自动实例化。在这种情况下,您所做的就是获取附加到始终存在的框架的全局实例,并使用它在页面之间导航。这意味着您的类不必实例化或显式继承 NavigationService。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)