2014-12-04 93 views
2

我目前正试图了解如何使用我的Xamarin Form应用程序来获取当前所在的(xaml)页面的名称。在Xamarin Forms应用程序中获取当前页面名称

我该怎么做?我尝试了各种情况下,甚至环顾四周互联网,但没有真正为我工作至今:/

+1

你是什么意思的“名称”?该网页的名称?在XAML中分配的名称?或标题属性? – Jason 2014-12-04 22:45:17

+0

在XAML中分配的名称,比如MainPage.xaml,我想在输出“MainPage”中获得 – 2014-12-04 22:46:18

回答

8

这仅仅是C#反射 - 的XAML页面的名称应与它的类的名称

var name = this.GetType().Name; 
+0

绝对华丽,感谢您的帮助,这是我甚至没有考虑尝试的几个代码之一。谢谢! – 2014-12-04 22:57:59

5

我知道这个问题已经解决,情况有些不同,但在我的具体情况下,我需要从平台特定的代码中识别导航堆栈中的当前页面,以防万一它可以帮助别人,这是代码我用过:

我使用了在页面的构造函数中设置的title属性。

public static string GetCurrentPage() 
     { 
      var page = App.Navigation.NavigationStack.Last(); 
      return page.Title; 
     } 
5

你会(通常)使用枯萎一个网页应用程序(主/详细信息,标签页)或一组导航的页面中,通过NavigationPage管理。 App.Current.MainPage将(通常)包含显示的第一页,如果它有.Navigation这将是可以给你最近显示的页面的导航页面 - 最后一页在堆栈中。如果它不是,你可以假设你的应用程序是一个页面的应用程序。

以上所有内容都是“普通”的,并不一定在所有情况下均为真,但可以为您寻找当前页面的起点。

var actionPage = App.Current.MainPage; 
if (actionPage.Navigation != null) 
    actionPage = actionPage.Navigation.NavigationStack.Last(); 
actionPage.DisplayActionSheet(...) 
+0

虽然此代码片段可能会解决问题,但[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要使用解释性注释来挤占代码,因为这会降低代码和解释的可读性! – FrankerZ 2016-07-27 07:03:01

+0

@FrankerZ添加了一些描述 – 2016-07-30 17:03:03

相关问题