在Xamarin Forms应用程序中获取当前页面名称

时间:2014-12-04 22:18:22

标签: c# xaml mono xamarin xamarin.forms

我目前正在尝试通过我的Xamarin表单应用了解如何获取我目前所在的(xaml)页面的名称。

我该怎么办?我尝试了各种各样的案例,甚至环顾互联网,但到目前为止我没有任何实际工作:/

4 个答案:

答案 0 :(得分:11)

这只是C#反射 - XAML页面的名称应该与它的名称相匹配

var name = this.GetType ().Name;

答案 1 :(得分:7)

您(通常)会使用由NavigationPage管理的单页应用程序(主/明细,标签页)或一组可导航页面。 App.Current.MainPage将(通常)包含显示的第一个页面,如果它有.Navigation,那么NavigationPage可以为您提供最近显示的页面 - 堆栈中的最后一个页面。如果它没有,您可以假设您的应用是一个页面应用程序。

以上所有仅仅是#34;普通"并不一定都适用于所有情况,但为您提供了查找当前页面的起点。

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

答案 2 :(得分:5)

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

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

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

答案 3 :(得分:1)

您可以获得当前打开的页面。

1)如果是主页。 - > var MainPage = App.Current.MainPage as PageName;

2)如果是导航页面

你可以获得计数页面。

App.Current.MainPage.Navigation.ModalStack.Count

var page= App.Current.MainPage.Navigation.ModalStack.LastOrDefault() as 

PageName;

App.Current.MainPage.Navigation.NavigationStack.Count

var page1=App.Current.MainPage.Navigation.NavigationStack.LastOrDefault() as 
PageName;