2016-07-04 11 views
3

Ich habe eine App, die Navigationsleiste am unteren Rand hat. Ich möchte diesen Teil der Seite statisch halten - das wäre für alle anderen Seiten "Basis". Ich könnte den gleichen Teil des Codes zu jeder XAML-Seite hinzufügen, aber ich habe den Eindruck, dass die Initialisierung der Navigationsleiste auf jeder Seite eine Verschwendung von Ressourcen und Zeit ist.Share xaml zwischen UWP App-Seiten

Um es klarer zu machen, ist unten ein Bild von Facebook App (iPhone), ziemlich genau die gleiche Benutzeroberfläche auf Windows 10. Rot umrahmt Teil der Benutzeroberfläche ändert sich nie, egal welche Seite Sie bewegen. Für diejenigen, die Facebook-App verwenden, wissen Sie, dass wenn Sie nach links/rechts schieben nur Inhalte in der Mitte (ohne roten Rand) ändert und Folie Animation nur auf diesen Teil der Seite angewendet wird.

Das ist im Grunde, was ich gerne erreichen würde. Statischer Teil des Codes, der nur einmal initialisiert wird, auf allen Seiten sichtbar bleibt und beim Wechseln zwischen den Seiten keine Animationen oder Seitenübergänge zulässt. Ich habe Dokumentationen gelesen und habe keine hilfreichen Informationen darüber gefunden, wie ich das erreichen kann.

Facebook

+1

Dies kann erreicht werden, indem Sie eine Seite erstellen, die wie eine Shell funktioniert und in der Sie die anderen Seiten dynamisch laden und ändern. Ein Beispiel dafür ist das Master/Detail-Layout, bei dem der Master statisch ist und das Detail Inhalt basierend auf Benutzerinteraktion ändert. –

+3

Verwenden Sie das 'Frame'-Steuerelement und navigieren Sie einfach in diesem Frame. UWP ist kein HTML, die Verwendung von Frames ist hier erlaubt :) – sibbl

Antwort

1

Sie können dies leicht implementieren, indem Sie eine Seite mit den gemeinsamen Kontrollen zu schaffen und ein ContentControl Objekt, das zeigt den tatsächlichen Inhalt der Seite verantwortlich.

Die ContentControl repräsentiert ein Steuerelement mit einem einzigen Stück Inhalt eines beliebigen Typs; was bedeutet, dass Sie zum Beispiel setzen können; a UserControl innerhalb davon, auch eine Page.

Denken Sie daran, dass, indem Sie dies tun; Sie werden die Frame Funktionalität verlieren und müssen viele Dinge auf eigene Faust behandeln, wie zum Beispiel den Navigations-Stack und die Back-Button-Funktionalität.

Ich lasse Sie this question on SO, die in Ihrem Fall hilfreich sein kann.