2016-10-10 24 views
1

私のUWPアプリでは、私は2つのフレームを使用する状況があります。フレームナビゲーション内のUWPフレーム - 親フレームにアクセスする方法?

たとえば、メインページにはフレーム(MainFrame)があり、このフレームにサブページを読み込みます。これにはフレーム(SubFrame1)もあり、このフレームに3ページ目を読み込みます。

ここで、3ページ目のボタンをクリックして、MainFrameのコンテンツを変更します。

私が使用:

this.Frame.Navigate(typeof(FourthPage)); 

それはサブページ(SubFrame1)からフレームにFourthPageをロードしますが、私は、メインフレームでFourthPageをロードします。ここではただ、例えば

答えて

2

、あなたの3ページ目は次のようにある場合:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Button Content="Navi from parent" Click="Button_Click" /> 
</Grid> 

その後、あなたはこのようなあなたのMainFrameを見つけることができるボタンクリックイベントに:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var grid = this.Frame.Parent as Grid; 
    var page = grid.Parent as SubFramePage; 
    var mainframe = page.Parent as Frame; 
    mainframe.Navigate(typeof(FourthPage)); 
} 

それはちょうどサンプルです、多分あなたのレイアウトはそんなものではない、ポイントはあなたが親のレイヤーを見つけることができるということです。

0

メインホームページはこれを持っている:

<SplitView> 
    <SplitView.Pane> 
    </SplitView.Pane> 
    <SplitView.Content> 
     <Frame Name="MainFrame"></Frame> 
    </SplitView.Content> 
</SplitView> 

今、別のページでは、この「メインフレーム」の中にナビゲートされる:

MainFrame.Navigate(typeof(AnotherPage)); 

「メインフレーム」は今や親フレームで、その中の意味、別のフレーム割り当てられる。

私たちは子フレーム内に滞在し、この親フレームをナビゲートしたい場合は今、我々は次のようにそれにアクセスすることができます。

Frame parentFrame = Window.Current.Content as Frame; 
parentFrame.Navigate(typeof(MainPage)); 
関連する問題