2017-02-11 81 views
1

我開發的應用程序UWP,我正在與背根幀的導航問題UWP導航,我有,我有架主網頁,我瀏覽的所有頁面到這個框架,, dashboard.xaml,orders.xaml ....等,我在我的orders.xaml我有另一架......在這架我瀏覽3種形式(XAML頁面帶有取消按鈕)時,我打在任何這些頁面的取消布頓,我需要導航到我的訂單頁面返回...所以我面臨問題與獲取主頁框架導航我的Orders.xaml到,請幫助我。在此先感謝從子頁面框架的主網頁框架

+1

你應該重新考慮你的設計。三個級別的導航對於用戶友好性來說太複雜。嘗試換出usercontrols。 – Bart

回答

0

有多種方式來實現你想要什麼。例如,您可以在公開靜態屬性Mainpage中公開Frame

public sealed partial class MainPage : Page 
{ 
    public static Frame MainPageFrame; 

    public MainPage() 
    { 
     this.InitializeComponent(); 
     //Frame1 is the name of the Frame in XAML 
     MainPageFrame = Frame1; 
    } 

    ... 
} 

然後在訂單詳情頁面,使用該屬性進行導航。

MainPage.MainPageFrame?.Navigate(typeof(Orders)); 

或者你可以採取的VisualTreeHelper優勢,獲取父Frame即「幀1」,如:

//this.Frame gets the Frame holds the order details page (i.e "Frame2") 
FindParent<Frame>(this.Frame)?.Navigate(typeof(Orders)); 

這裏的FindParent方法是一種幫助方法使用VisualTreeHelper.GetParent方法如下所示:

public static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject 
{ 
    var parentObject = VisualTreeHelper.GetParent(dependencyObject); 

    if (parentObject == null) return null; 

    var parent = parentObject as T; 
    return parent ?? FindParent<T>(parentObject); 
} 
+0

感謝ü如此多的周杰倫......它的工作使用VIsualTreeHelper方法 – Murali

1

這應做到:

Frame.Navigate(typeof(orders)); 
+0

感謝您的回答,但是當我嘗試上述操作時,我將我的訂單頁面導航到錯誤的框架中(而不是主頁框架)。網主頁 - >的第1幀 - > Orders.xaml - > createOrder(按鈕) - >點擊 - 與4tabs> XAML頁和式2 - >爲每個標籤我導航頁面(形式)取該順序從用戶的詳細信息,每種形式都取消,點擊取消,我應該導航到訂單頁面(即到MainPage.xaml中幀1) – Murali