我目前正在尝试了解如何使用Xamarin Form应用程序获得我当前进入的(xaml)页面的名称。我应该怎么做呢?我试过各种各样的案例,甚至在网上四处寻找,但到目前为止没有一个真正对我有效:/
mzaanser1#
这只是C#反射-XAML页面的名称应该与其类的名称匹配
var name = this.GetType ().Name;
pinkon5k2#
你会(通常)使用单页应用程序(主/细节,标签页)或一组可导航页面,由NavigationPage管理。App.Current.MainPage(通常)会包含显示的第一个页面,如果它有.Navigation,那将是NavigationPage,它可以给予你最近显示的页面-堆栈中的最后一个。如果它没有,你可以假设你的应用程序是单页应用程序。以上所述只是“常见的”,并不一定在所有情况下都是正确的,但它给了你一个寻找当前页面的起点。
App.Current.MainPage
.Navigation
var actionPage = App.Current.MainPage; if (actionPage.Navigation != null) actionPage = actionPage.Navigation.NavigationStack.Last(); actionPage.DisplayActionSheet(...)
wxclj1h53#
我知道这个问题已经解决了,场景也有些不同,但在我的具体情况下,我需要从平台特定的代码中识别导航堆栈中的当前页面,所以以防万一它可能会帮助其他人,这是我使用的代码:我使用了在页面的构造函数中设置的title属性。
public static string GetCurrentPage() { var page = App.Navigation.NavigationStack.Last(); return page.Title; }
mbjcgjjk4#
您可以获取当前打开页面1)* * 如果是MainPage.-〉var MainPage =应用程序.当前. MainPage作为页面名称;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;
4xy9mtcn5#
以下是如何从应用程序中的任意位置获取当前页面类型(Xamarin Forms)。这可能是一个更一般的回答你的问题,但我认为它值得张贴。如果您使用的是:
Xamarin Forms
var mainPage = App.Current.MainPage as Xamarin.Forms.Shell; var currentPage = mainPage.CurrentPage; var type = currentPage.GetType().Name;
此外,当前页面的URL:
string location = mainPage.CurrentState.Location.ToString()
正如其他人也提到的:
var mainPage = App.Current.MainPage; var currentPage = mainPage.Navigation.NavigationStack.Last();
希望能有所帮助。
5条答案
按热度按时间mzaanser1#
这只是C#反射-XAML页面的名称应该与其类的名称匹配
pinkon5k2#
你会(通常)使用单页应用程序(主/细节,标签页)或一组可导航页面,由NavigationPage管理。
App.Current.MainPage
(通常)会包含显示的第一个页面,如果它有.Navigation
,那将是NavigationPage,它可以给予你最近显示的页面-堆栈中的最后一个。如果它没有,你可以假设你的应用程序是单页应用程序。以上所述只是“常见的”,并不一定在所有情况下都是正确的,但它给了你一个寻找当前页面的起点。
wxclj1h53#
我知道这个问题已经解决了,场景也有些不同,但在我的具体情况下,我需要从平台特定的代码中识别导航堆栈中的当前页面,所以以防万一它可能会帮助其他人,这是我使用的代码:
我使用了在页面的构造函数中设置的title属性。
mbjcgjjk4#
您可以获取当前打开页面
1)* * 如果是MainPage.-〉var MainPage =应用程序.当前. MainPage作为页面名称;
2)* * 如果是导航页。
你可以计算页数。
App.Current.MainPage.Navigation.ModalStack.Count
App.Current.MainPage.Navigation.NavigationStack.Count
4xy9mtcn5#
以下是如何从应用程序中的任意位置获取当前页面类型(
Xamarin Forms
)。这可能是一个更一般的回答你的问题,但我认为它值得张贴。
如果您使用的是:
1.带选项卡/单页的应用程序
此外,当前页面的URL:
2.基于导航的应用
正如其他人也提到的:
希望能有所帮助。