Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A felhasználók hatékonyabb munkavégzésének elősegítése azáltal, hogy lehetővé teszi számukra, hogy külön ablakban tekintsék meg az alkalmazás független részeit. Ha több ablakot hoz létre egy alkalmazáshoz, minden ablak egymástól függetlenül viselkedik. A tálcán az egyes ablakok külön láthatók. A felhasználók egymástól függetlenül áthelyezhetik, átméretezhetik, megjeleníthetik és elrejthetik az alkalmazásablakokat, és úgy válthatnak az alkalmazásablakok között, mintha különálló alkalmazások lennének. Minden ablak saját szálon működik.
Fontos API-k: ApplicationViewSwitcher, CreateNewView
Mit jelent a nézet?
Az alkalmazásnézet egy szál és egy ablak 1:1-ás párosítása, amelyet az alkalmazás a tartalom megjelenítésére használ. Ezt egy Windows.ApplicationModel.Core.CoreApplicationView objektum képviseli.
A nézeteket a CoreApplication objektum kezeli. A CoreApplication.CreateNewView meghívásával hoz létre egy CoreApplicationView objektumot. A CoreApplicationView összefogja a CoreWindow és a CoreDispatcher elemeket (melyek a CoreWindow és Dispatcher tulajdonságokban vannak tárolva). A CoreApplicationView az az objektum, amelyet a Windows futtatókörnyezet használ az alapvető Windows-rendszerrel való interakcióhoz.
Általában nem dolgozik közvetlenül a CoreApplicationView. Ehelyett a Windows Futtatókörnyezet biztosítja az ApplicationView osztályt a Windows.UI.ViewManagement névtérben. Ez az osztály olyan tulajdonságokat, metódusokat és eseményeket biztosít, amelyeket az alkalmazás az ablakkezelő rendszerrel való interakció során használ. Ha egy ApplicationViewpéldánnyal szeretne dolgozni, hívja meg a statikus ApplicationView.GetForCurrentView metódust, amely az aktuális CoreApplicationViewszálához kötött ApplicationView példányt hozza létre.
Hasonlóképpen, az XAML-keretrendszer egy Windows.UI.XAML.Window objektumba burkolja a CoreWindow objektumot. Az XAML-alkalmazásokban általában a
Új nézet megjelenítése
Bár az egyes alkalmazáselrendezések egyediek, javasoljuk, hogy az "új ablak" gombot egy kiszámítható helyre, például a tartalom jobb felső sarkába, amely megnyitható egy új ablakban. Fontolja meg azt is, hogy a helyi menübe bekerüljön a "Megnyitás új ablakban" opció.
Tekintsük meg az új nézet létrehozásának lépéseit. Itt az új nézet egy gombnyomásra indul el.
private async void Button_Click(object sender, RoutedEventArgs e)
{
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame frame = new Frame();
frame.Navigate(typeof(SecondaryPage), null);
Window.Current.Content = frame;
// You have to activate the window in order to show it later.
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
}
Új nézet megjelenítése
A CoreApplication.CreateNewView meghívásával új ablakot és szálat hozhat létre a nézet tartalmához.
CoreApplicationView newView = CoreApplication.CreateNewView();Kövesse nyomon az új nézet azonosítóját. Ezzel később is megjelenítheti a nézetet.
Érdemes lehet néhány infrastruktúrát beépíteni az alkalmazásba, hogy segítsen nyomon követni a létrehozott nézeteket. Példaként tekintse meg a
ViewLifetimeControlMultipleViews-minta osztályát.int newViewId = 0;Az új szálon töltse ki az ablakot.
A CoreDispatcher.RunAsync metódussal ütemezheti a munkát az új nézet felhasználói felületi szálán. Egy lambda-kifejezéssel adtok át egy függvényt argumentumként a RunAsync metódusnak. A lambda függvényben végzett munka az új nézet szálán történik.
Az XAML-ben általában hozzáad egy keretet a ablaktartalom tulajdonságához, majd navigáljon a kerettel egy XAML oldalra, ahol az alkalmazás tartalmát definiálta. A képkockákkal és a lapokkal kapcsolatos további információkért lásd a két oldal közötti közvetlen navigációt pontban.
Az új Ablak feltöltése után meg kell hívnia a AblakAktiválás metódusát a ablak későbbi megjelenítéséhez. Ez a munka az új nézet szálán történik, így aktiválódik az új ablak.
Végül szerezze be az új nézet azonosítóját , amellyel később megjelenítheti a nézetet. Ez a munka újra az új nézet szálához tartozik, így a ApplicationView.GetForCurrentView megkapja az új nézet azonosítóját.
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Frame frame = new Frame(); frame.Navigate(typeof(SecondaryPage), null); Window.Current.Content = frame; // You have to activate the window in order to show it later. Window.Current.Activate(); newViewId = ApplicationView.GetForCurrentView().Id; });Az új nézet megjelenítéséhez hívja meg ApplicationViewSwitcher.TryShowAsStandaloneAsync.
Miután létrehozott egy új nézetet, megjelenítheti azt egy új ablakban az ApplicationViewSwitcher.TryShowAsStandaloneAsync metódus meghívásával. A metódus viewId paramétere egy egész szám, amely egyedileg azonosítja az alkalmazás összes nézetét. A nézet azonosítója a ApplicationView.Id tulajdonság vagy az ApplicationView.GetApplicationViewIdForWindow metódus használatával érhető el.
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
A fő nézet
Az alkalmazás indításakor létrehozott első nézet neve fő nézet. Ez a nézet a CoreApplication.MainView tulajdonságban van tárolva, és az IsMain tulajdonsága igaz. Ezt a nézetet nem hozza létre; az alkalmazás hozta létre. A fő nézet szála szolgál az alkalmazás kezelőjeként, és az összes alkalmazásaktiválási esemény ezen a szálon lesz kézbesítve.
Ha a másodlagos nézetek meg vannak nyitva, a fő nézet ablaka elrejthető – például a bezárás (x) gombra kattintva az ablak címsorában –, de a szál aktív marad. Amikor a főnézet AblakBezárás hívását végezzük el, akkor egy InvalidOperationException jön létre. (Az Application.Exit használatával zárja be az alkalmazást.) Ha a főnézet szála leáll, az alkalmazás bezárul.
Másodlagos nézetek
A többi nézet, beleértve az alkalmazáskódban a CreateNewView meghívásával létrehozott összes nézetet is, másodlagos nézetek. A fő nézet és a másodlagos nézetek is a CoreApplication.Views gyűjteményben vannak tárolva. Általában másodlagos nézeteket hoz létre egy felhasználói műveletre válaszul. Bizonyos esetekben a rendszer másodlagos nézeteket hoz létre az alkalmazás számára.
Megjegyzés:
A Windows hozzárendelt hozzáférési funkcióval egy alkalmazást kioszk módban futtathat. Ha ezt teszi, a rendszer létrehoz egy másodlagos nézetet, amely az alkalmazás felhasználói felületét jeleníti meg a zárolási képernyő felett. Az alkalmazás által létrehozott másodlagos nézetek nem engedélyezettek, ezért ha kioszk módban próbálja megjeleníteni a saját másodlagos nézetét, kivétel keletkezik.
Váltás egyik nézetről a másikra
Fontolja meg, hogy a felhasználó hogyan navigálhat vissza a másodlagos ablakból a szülőablakba. Ehhez használja az ApplicationViewSwitcher.SwitchAsync metódust . Ezt a metódust annak az ablaknak a szálából hívhatja meg, amelyről vált, és átadja annak az ablaknak a nézetazonosítóját, amelyre vált.
await ApplicationViewSwitcher.SwitchAsync(viewIdToShow);
A SwitchAsync használata esetén az ApplicationViewSwitchingOptions értékének megadásával megadhatja, hogy be szeretné-e zárni a kezdeti ablakot, és el szeretné-e távolítani a tálcáról.