Warum erscheint meine AppBar beim Laden von Seiten unabhängig von der tatsächlichen Einstellung als ClosedDisplayMode.Compact?

9

Ich portiere eine Win8.1 App nach UWP für Win10 und erlebe ein seltsames Problem mit AppBar . Wir haben versucht, CommandBar anstelle von AppBar zu verwenden, aber das Problem tritt immer noch bei uns auf. Wir sind auf der neuesten Version von MyToolkit (2.5.16 zum Zeitpunkt der Erstellung). Unsere Ansichten sind wie folgt abgeleitet:

SomeView stammt von BaseView dervices von MtPage (leitet sich von Page ab)

Für eine bestimmte Ansicht (in diesem Fall HomeView ) sieht das XAML wie folgt aus:

%Vor%

Wo NavigationView ein UserControl ist, das einige Schaltflächen hat, und NavigationViewContext und NavigationViewModel beschreiben, welche Schaltflächen auf welcher Seite aktiv sein sollen usw.

Das Problem ist, dass dies zu einer Art halboffenen, halbgeschlossenen AppBar -Erscheinungsbild führt (fast, aber nicht ganz so, als wäre ClosedDisplayMode auf Compact gesetzt) ​​wie folgt:

Nach dem Hinzufügen von ClosedDisplayMode="Minimal" zum Steuerelement <AppBar> , wie in diese Frage , der visuelle Live-Baum bestätigt, dass die AppBar IsOpen = 0 und AppBarClosedDisplayMode.Minimal ... hat, aber immer noch stur erscheint halboffen wie im Screenshot oben.

Seltsamerweise wird der HomeView korrekt mit AppBar (!):

gerendert, wenn der Benutzer von AppBarClosedDisplayMode.Minimal zu einer anderen Ansicht und dann wieder zurück navigiert

Wir haben versucht, das NavigatedTo -Ereignis der Ansicht zu bearbeiten und ClosedDisplayMode manuell auf Minimal zu setzen, aber das hat keinen Einfluss auf die gerenderte Ausgabe (und in jedem Fall bestätigt der Live-Visual-Tree, dass dies bereits geschieht korrekt auf Minimal ) gesetzt.

Irgendwelche Ideen, warum das passiert und / oder wie man das AppBar mit ClosedDisplayMode = Minimal darstellen kann, ohne zuerst navigieren zu müssen? Ich bin mir sicher, dass ich das vielleicht irgendwie brutal erzwingen könnte, aber ich habe das Gefühl, dass es wahrscheinlich einen besseren Weg gibt oder mir etwas ziemlich Einfaches fehlt.

    
Daniel A. Thompson 23.01.2017, 23:34
quelle

1 Antwort

4

Wechseln Sie einfach zu CommandBar . CommandBar funktioniert out-of-the-box perfekt sowohl für die Modi Minimal als auch Compact . CommandBar ist die empfohlene bevorzugte Kontrolle über AppBar . Offenbar ist der einzige Grund, AppBar beizubehalten, die Minimierung von Änderungen.

AppBar - MSDN .

  

Wichtig Sie sollten die AppBar nur verwenden, wenn Sie ein Upgrade durchführen   Universal Windows 8 App, die die AppBar verwendet und minimiert werden muss   Änderungen. Für neue Anwendungen in Windows 10 empfehlen wir die Verwendung der Befehlsleiste   Kontrollieren Sie stattdessen.

Seite:

%Vor%

Benutzerkontrolle:

%Vor%

    
jsanalytics 29.01.2017, 13:37
quelle

Tags und Links