2014-12-04 74 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

相關問題