UWP-frame-in-frame-navigation – Wie man Zugang zu den übergeordneten frame?

in meine UWP-app habe ich die situation, dass ich mit zwei frames.

Beispielsweise die Haupt-Seite hat einen frame (MainFrame) und laden in diesem Rahmen zu einer Unterseite, dieser hat auch ein Bild (SubFrame1) und laden Sie eine Dritte Seite in diesem frame.

Will ich jetzt ändern, die den Inhalt des MainFrame mit Klick auf einen button auf der Dritten Seite.

Wenn ich:

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

Lädt er die FourthPage in den Rahmen von der Unterseite (SubFrame1) aber ich will zum laden der FourthPage in die MainFrame.

InformationsquelleAutor Laire | 2016-10-10



2 Replies
  1. 2

    Nur ein Beispiel hier, wenn die Dritte Seite ist wie folgt:

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

    Dann in der Schaltfläche click-Ereignis finden Sie Ihre MainFrame wie diese:

    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));
    }

    Es ist nur ein Beispiel, vielleicht Ihr layout ist nicht so, der Punkt ist, dass man die übergeordnete Ebene-von-Ebene.

  2. 1

    Main Home Seite diese:

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

    Nun zu einer anderen Seite navigiert wird innerhalb dieses „MainFrame“:

    MainFrame.Navigate(typeof(AnotherPage));
    

    Bedeutung „MainFrame“ ist nun der übergeordnete frame und in der es, einem anderen frame zugewiesen wird.

    Nun, wenn wir navigieren möchten dieses übergeordneten Rahmens bleiben im untergeordneten frame, dann können wir es in der folgenden Weise:

    Frame parentFrame = Window.Current.Content as Frame;
    parentFrame.Navigate(typeof(MainPage));
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.