Arbeiten mit Kacheln in einer Windows Store-Geschäfts-App mit C#, XAML und Prism

Applies to Windows only

Aus: Entwickeln einer Windows Store-Geschäfts-App mit C#, XAML und Prism für die Windows-Runtime

Leitfaden-Logo

Vorherige Seite | Nächste Seite

Hier erfahren Sie, wie Sie eine App-Kachel erstellen, die mithilfe von regelmäßigen Benachrichtigungen aktualisiert wird, und wie Sie sekundäre Kacheln und Deep-Links erstellen, um bestimmte Inhalte einer App auf der Startseite zu präsentieren. Dies wird in der Referenzimplementierung "AdventureWorks Shopper" veranschaulicht. Außerdem wird das Starten der App über eine sekundäre Kachel mit Prism für die Windows-Runtime erläutert.

Download

AdventureWorks Shopper-Beispiel herunterladen
Prism-StoreApps-Bibliothek herunterladen
Buch herunterladen (PDF)

Nach dem Herunterladen des Codes finden Sie unter Erste Schritte mit Prism für die Windows-Runtime Anweisungen über das Kompilieren und Ausführen der Referenzimplementierung sowie grundlegende Informationen zur Struktur der Microsoft Visual Studio-Projektmappe.

Sie erfahren Folgendes:

Betrifft

  • Windows-Runtime für Windows 8.1
  • C#
  • XAML (eXtensible Application Markup Language)

Treffen von wichtigen Entscheidungen

Bei einer Kachel handelt es sich um eine Darstellung der App auf der Startseite. Sie ermöglicht Ihnen die Präsentation umfangreicher und interessanter Inhalte für Benutzer, wenn die App gerade nicht ausgeführt wird. Kacheln sollten für Benutzer ansprechend gestaltet sein, damit Sie mir Ihrer Windows Store-App einen guten ersten Eindruck erzielen. Unten sind die Entscheidungen zusammengefasst, die Sie beim Erstellen von Kacheln für die App treffen müssen:

  • Warum lohnt es sich, in eine Live-Kachel zu investieren?
  • Wie kann eine Live-Kachel für Benutzer ansprechend gestaltet werden?
  • Welche Form sollte die Kachel haben?
  • Welche Größe sollte das Kachelbild haben?
  • Welche Kachelvorlagen sollten verwendet werden?
  • Welches Verfahren sollte zum Bereitstellen von Kachelbenachrichtigungen verwendet werden?
  • Wie häufig sollte sich der Inhalt der Live-Kachel ändern?
  • Sollte die App über die Möglichkeit zum Anheften von sekundären Kacheln auf der Startseite verfügen?

Kacheln können "live" sein und mithilfe von Benachrichtigungen aktualisiert werden, oder sie können statischer Natur sein. Informationen zu Kacheln (z. B. warum die Investition in eine Live-Kachel sinnvoll ist, wie eine Live-Kachel für Benutzer ansprechend gestaltet wird, welche Form und Größe eine Kachel aufweisen sollte, welche Kachelvorlagen verwendet werden sollten, wie häufig der Inhalt der Live-Kachel geändert werden sollte und was es mit sekundären Kacheln auf sich hat) finden Sie unter Richtlinien für Kacheln und Signale, Kachel- und Popupbildgrößen, Kachelvorlagenkatalog, Senden von Benachrichtigungen und Übersicht über sekundäre Kacheln.

Die Wahl des geeigneten Verfahrens zum Bereitstellen einer Kachelbenachrichtigung hängt weitgehend von dem Inhalt ab, den Sie anzeigen möchten, sowie davon, wie oft der Inhalt aktualisiert werden soll. Lokale Benachrichtigungen sind auch dann eine gute Möglichkeit, die App-Kachel aktuell zu halten, wenn Sie zusätzlich andere Benachrichtigungsverfahren verwenden. Für viele Apps werden lokale Benachrichtigungen zum Aktualisieren der Kachel verwendet, wenn die App gestartet wird oder sich der Zustand in der App ändert. Dadurch ist sichergestellt, dass die Kachel aktuell ist, wenn die App gestartet und beendet wird. Geplante Benachrichtigungen eignen sich ideal für Situationen, in denen der zu aktualisierende Inhalt im Voraus bekannt ist (z. B. eine Besprechungseinladung). Regelmäßige Benachrichtigungen ermöglichen Kachelaktualisierungen mit minimalem Aufwand für Web- oder Clouddienste und Clients und sind eine hervorragende Möglichkeit, Inhalte großen Zielgruppen zukommen zu lassen. Pushbenachrichtigungen sind ideal für Situationen geeignet, in denen die App über Echtzeitdaten oder Daten verfügt, die für den Benutzer personalisiert sind. Außerdem sind Pushbenachrichtigungen in Situationen nützlich, in denen die Daten zeitabhängig sind und die Inhalte zu unvorhersehbaren Zeiten generiert werden. Regelmäßige Benachrichtigungen stellen die am besten geeignete Benachrichtigungslösung für quergeladene Apps dar, ermöglichen jedoch keine bedarfsgesteuerten Benachrichtigungen. Bei regelmäßigen Benachrichtigungen wird nach dem ersten Abruf vom Web- oder Clouddienst von Windows zudem auch dann damit fortgefahren, Kachelaktualisierungen abzurufen, wenn die App nicht mehr gestartet wird. Weitere Informationen finden Sie unter Auswählen einer Methode für die Übermittlung von Benachrichtigungen.

Hinweis  Für Pushbenachrichtigungen werden die Windows-Pushbenachrichtigungsdienste (Windows Push Notification Services, WNS) zum Bereitstellen von Aktualisierungen für Benutzer verwendet. Um Benachrichtigungen mithilfe von WNS senden zu können, muss Ihre App zunächst unter dem Dashboard des Windows Store registriert werden. Weitere Informationen finden Sie unter Übersicht über Pushbenachrichtigungen.

[Nach oben]

Kacheln in AdventureWorks Shopper

Die Referenzimplementierung "AdventureWorks Shopper" enthält mittelgroße und breite Standardkacheln, die jeweils gemäß den Pixelanforderungen erstellt wurden. Die Auswahl eines kleinen Logos für Ihre App hilft Benutzern, die App zu identifizieren, wenn benutzerdefinierter Inhalt von der Kachel angezeigt wird. Weitere Informationen finden Sie unter Erstellen von App-Kacheln.

Die Standardkacheln werden in den Live-Zustand versetzt, indem sie alle 30 Minuten mithilfe von regelmäßigen Benachrichtigungen aktualisiert werden, um bestimmte Produkte für Benutzer auf der Startseite anzukündigen. Von den regelmäßigen Benachrichtigungen werden Vorschauvorlagen verwendet, damit die Live-Kachel zwischen zwei Frames animiert wird. Im ersten Frame wird ein Bild des beworbenen Produkts angezeigt, und der zweite Frame enthält die Produktdetails. Es werden sowohl breite als auch mittelgroße Vorschauvorlagen für Kacheln verwendet. In AdventureWorks Shopper wird standardmäßig die breite Kachel vorgegeben, aber Benutzer können auch zur mittelgroßen Kachel wechseln. Weitere Informationen finden Sie unter Verwenden regelmäßiger Benachrichtigungen zum Aktualisieren des Kachelinhalts.

In AdventureWorks Shopper ist es möglich, sekundäre Kacheln zu erstellen, indem bestimmte Produkte der ItemDetailPage auf der Startseite angeheftet werden. In der folgenden Abbildung sind die beiden Frames einer sekundären Kachel dargestellt, die aus einem der in AdventureWorks Shopper erhältlichen Produkte erstellt wurde.

Sekundäre AdventureWorks Shopper-Kachel auf der Startseite

Wenn eine sekundäre Kachel ausgewählt wird, wird die App gestartet und das zuvor angeheftete Produkt auf der ItemDetailPage angezeigt. Weitere Informationen finden Sie unter Erstellen von sekundären Kacheln.

[Nach oben]

Erstellen von App-Kacheln

Anfänglich werden Kacheln als Standardkacheln angezeigt, die im Manifest der App festgelegt sind. Eine statische Kachel zeigt immer den Standardinhalt an, also üblicherweise ein Logo über die gesamte Kachel. Bei einer Live-Kachel kann die Standardkachel mit neuem Inhalt aktualisiert werden, aber es kann zum Standardinhalt zurückgekehrt werden, wenn die Benachrichtigung abläuft oder entfernt wird. In den folgenden Abbildungen sind die kleinen, mittelgroßen und breiten Logobilder dargestellt, die in der Visual Studio-Projektmappe AdventureWorks Shopper im Ordner Assets (Ressourcen) enthalten sind. Jedes Logo hat einen transparenten Hintergrund. Dies ist besonders für das kleine Logo wichtig, damit Benachrichtigungsinhalte für die Kachel nicht vollständig überlagert werden.

Kleines Kachellogo von AdventureWorks Shopper

30 x 30 Pixel

Quadratisches Kachellogo von AdventureWorks Shopper

150 x 150 Pixel

Breites Kachellogo von AdventureWorks Shopper

310 x 150 Pixel

Hinweis  Bildressourcen, einschließlich der Logos, sind Platzhalter und nur zu Übungszwecken gedacht. Sie können nicht als Markenzeichen oder für andere kommerzielle Zwecke genutzt werden.

Mit dem Manifest-Editor von Visual Studio können Sie die Standardkacheln leicht hinzufügen. Weitere Informationen finden Sie unter Schnellstart: Erstellen einer Standardkachel im Manifest-Editor von Visual Studio. Weitere Informationen zum Arbeiten mit Bildressourcen finden Sie unter Schnellstart: Verwenden von Datei- oder Bildressourcen und So wird's gemacht: Benennen von Ressourcen mithilfe von Qualifizierern.

Wenn in der Manifestdatei der App nur ein mittelgroßes Logo bereitgestellt wird, ist die Kachel der App immer quadratisch. Enthält das Manifest sowohl ein mittelgroßes als auch ein breites Logo, wird bei der Installation der App standardmäßig eine breite Kachel verwendet. Sie müssen entscheiden, ob Sie auch eine breite Kachel zulassen möchten. Die Auswahl erfolgt durch Bereitstellen des breiten Logos, wenn Sie die Standardkachel in Ihrem App-Manifest definieren.

Verwenden regelmäßiger Benachrichtigungen zum Aktualisieren des Kachelinhalts

Mit regelmäßigen Benachrichtigungen, die auch abgerufene Benachrichtigungen genannt werden, werden Kacheln in festgelegten Intervallen aktualisiert, indem Inhalte direkt aus einem Web- oder Clouddienst heruntergeladen werden. Um regelmäßige Benachrichtigungen verwenden zu können, muss von der App der URI (Uniform Resource Identifier) eines Webspeicherorts angegeben werden, von dem Windows Kachelaktualisierungen abrufen kann. Außerdem muss angegeben werden, wie häufig der URI abgerufen werden soll.

Regelmäßige Benachrichtigungen erfordern einen von Ihrer App gehosteten Web- oder Clouddienst. Jede gültige HTTP- oder HTTPS-Webadresse (Secure Hypertext Transfer Protocol) kann als URI verwendet werden, der von Windows abgefragt wird. Im folgenden Codebeispiel wird die GetTileNotification-Methode in der TileNotificationController-Klasse des Projekts "AdventureWorks.WebServices" veranschaulicht. Diese wird verwendet, um Kachelinhalte an die AdventureWorks Shopper-Referenzimplementierung zu senden.

AdventureWorks.WebServices\Controllers\TileNotificationController.cs


public HttpResponseMessage GetTileNotification()
{
    var tileXml = GetDefaultTileXml("http://localhost:2112/Images/hotrodbike_red_large.jpg",
                                    "Mountain-400-W Red, 42");
    tileXml = string.Format(CultureInfo.InvariantCulture, tileXml, DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString());

    // create HTTP response
   var response = new HttpResponseMessage();

    // format response
    response.StatusCode = System.Net.HttpStatusCode.OK;
    response.Content = new StringContent(tileXml);

    //Need to return xml format to TileUpdater.StartPeriodicUpdate
    response.Content.Headers.ContentType = 
        new System.Net.Http.Headers.MediaTypeHeaderValue("text/xml");
    return response;
} 


Mit dieser Methode wird der XML-Inhalt der Kachel generiert, formatiert und als HTTP-Antwort zurückgegeben. Kachelinhalte müssen die Anforderungen des Kachelschemas erfüllen und im Format UTF-8 (8-Bit Unicode Transformation Format) codiert sein. Der Kachelinhalt wird mithilfe der Vorlagen TileWidePeekImage01 und TileSquarePeekImageAndText02 angegeben. Dies ist erforderlich, da von der App standardmäßig die breite Kachel verwendet wird, die jedoch von Benutzern in die quadratische Kachel geändert werden kann. Weitere Informationen finden Sie im Katalog für Kachelvorlagen.

Bei einem Abfrageintervall von 30 Minuten sendet Windows eine HTTP GET-Anforderung an den URI, lädt die angeforderten Kachelinhalte im XML-Format herunter und zeigt die Inhalte auf der App-Kachel an. Dies wird, wie im folgenden Codebeispiel dargestellt, mithilfe der OnInitialize-Methode in der App-Klasse erreicht.

AdventureWorks.Shopper\App.xaml.cs


_tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
_tileUpdater.StartPeriodicUpdate(new Uri(Constants.ServerAddress + "/api/TileNotification"), PeriodicUpdateRecurrence.HalfHour);


Eine neue TileUpdater-Instanz wird mit der CreateTileUpdaterForApplication-Methode in der TileUpdateManager-Klasse erstellt, um die App-Kachel zu aktualisieren. Eine Kachel auf der Startseite zeigt standardmäßig den Inhalt einer einzelnen Benachrichtigung an, bis die aktuelle Benachrichtigung durch eine neue ersetzt wird. Sie können jedoch Benachrichtigungszyklen aktivieren, sodass bis zu fünf Benachrichtigungen in einer Warteschlange vorgehalten und nacheinander auf der Kachel angezeigt werden. Dies wird erreicht, indem die EnableNotificationQueue-Methode mit dem Parameter true für die TileUpdater-Instanz aufgerufen wird. Im letzten Schritt wird ein Aufruf von StartPeriodicUpdate durchgeführt, um den angegebenen URI abzurufen und die Kachel mit den empfangenen Inhalten zu aktualisieren. Nach diesem ersten Abruf werden von Windows wie angegeben alle 30 Minuten Aktualisierungen bereitgestellt. Das Abrufen wird fortgesetzt, bis Sie diese explizit beenden oder die App deinstalliert wird. Andernfalls werden von Windows weiterhin Aktualisierungen für die Kachel abgerufen, auch wenn die App nie wieder gestartet wird.

Hinweis  In Windows wird versucht, den Abruf jeweils wie gewünscht durchzuführen, aber das Intervall kann nicht immer genau eingehalten werden. Für das angeforderte Abrufintervall kann es zu Verzögerungen von bis zu 15 Minuten kommen.

Standardmäßig laufen die regelmäßigen Kachelbenachrichtigungen drei Tage nach dem Herunterladen ab. Daher wird empfohlen, ein Ablaufintervall für alle regelmäßigen Kachelbenachrichtigungen festzulegen, wobei ein Zeitraum verwendet werden sollte, der sinnvoll für Ihre App ist. So kann sichergestellt werden, dass der Inhalt der Kachel nur so lange beibehalten wird, wie er relevant ist. Außerdem wird so sichergestellt, dass veraltete Inhalte entfernt werden, wenn der Web- oder Clouddienst nicht verfügbar ist oder der Benutzer die Verbindung mit dem Netzwerk für längere Zeit trennt. Dazu wird der X-WNS-Expires-HTTP-Header zurückgegeben, um das Datum und die Uhrzeit für den Ablauf anzugeben.

Weitere Informationen finden Sie unter Übersicht über regelmäßige Benachrichtigungen, Verwenden der Benachrichtigungswarteschlange und Richtlinien für regelmäßige Benachrichtigungen.

[Nach oben]

Erstellen von sekundären Kacheln

Über eine sekundäre Kachel können Benutzer von der Startseite aus direkt auf eine bestimmte Seite der App zugreifen. Von Apps können sekundäre Kacheln nur dann programmgesteuert angeheftet werden, wenn die Zustimmung des Benutzers vorliegt. Benutzer können auch die Entfernung sekundärer Kacheln explizit steuern. So können Benutzer die Startseite mit den Funktionen personalisieren, die sie am häufigsten verwenden.

Sekundäre Kacheln sind unabhängig von der Hauptkachel der App und können unabhängig von der Hauptkachel Benachrichtigungen empfangen. Wenn eine sekundäre Kachel aktiviert wird, wird ein Aktivierungskontext für die übergeordnete App bereitgestellt, sodass sie im Kontext der sekundären Kachel gestartet werden kann.

Die Option zum Erstellen eine sekundären Kachel befindet sich auf der unteren App-Leiste der ItemDetailPage und hat die Bezeichnung An "Start" anheften. Damit können Sie eine sekundäre Kachel für das anzuzeigende Produkt erstellen. Wenn die sekundäre Kachel ausgewählt wird, wird die App gestartet und das zuvor angeheftete Produkt auf der ItemDetailPage angezeigt. Die folgende Abbildung enthält ein Beispiel für das Flyout, das angezeigt wird, wenn Sie die Schaltfläche An "Start" anheften auswählen. Im Flyout wird eine Vorschau der sekundären Kachel angezeigt und um die Zustimmung zur Erstellung gebeten.

Flyout zur sekundären Kachel in AdventureWorks Shopper

Die Funktionen zum Anheften und Lösen sekundärer Kacheln werden über die SecondaryTileService-Klasse bereitgestellt, von der die ISecondaryTileService-Schnittstelle implementiert wird. Unter der OnInitialize-Methode in der App-Klasse wird die SecondaryTileService-Klasse als Typzuordnung für den ISecondaryTileService-Typ mit dem Unity-Container zum Einfügen von Abhängigkeiten registriert. Bei der Instanziierung der ItemDetailPageViewModel-Klasse, von der ein ISecondaryTileService-Typ akzeptiert wird, wird der Typ vom Unity-Container aufgelöst und eine Instanz der SecondaryTileService-Klasse zurückgegeben.

Der Workflow, der in AdventureWorks Shopper zum Anheften einer sekundären Kachel auf der Startseite verwendet wird, sieht wie folgt aus:

  1. Sie rufen das PinProductCommand-Element über die Schaltfläche An "Start" anheften der App-Leiste auf der ItemDetailPage auf.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    PinProductCommand = DelegateCommand.FromAsyncHandler(PinProduct, () => SelectedProduct != null);
    
    
    
  2. Von AdventureWorks Shopper wird dann überprüft, ob die Kachel nicht bereits angeheftet wurde, indem das SecondaryTileExists-Prädikat in der SecondaryTileService-Instanz aufgerufen wird.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    bool isPinned = _secondaryTileService.SecondaryTileExists(tileId);
    
    
    
  3. In AdventureWorks Shopper wird die PinWideSecondaryTile-Methode in der SecondaryTileService-Instanz aufgerufen, um eine sekundäre Kachel zu erstellen. Die SelectedProduct.ProductNumber-Eigenschaft wird als eindeutige ID verwendet.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    isPinned = await _secondaryTileService.PinWideSecondaryTile(tileId, SelectedProduct.Title, SelectedProduct.ProductNumber);
    
    
    

    Mit der PinWideSecondaryTile-Methode wird eine neue Instanz der SecondaryTile-Klasse erstellt. Dabei werden Informationen wie der Kurzname, der Anzeigename, das Logo usw. bereitgestellt.

    AdventureWorks.UILogic\Services\SecondaryTileService.cs

    
    var secondaryTile = new SecondaryTile(tileId, displayName, arguments, _squareLogoUri, TileSize.Wide310x150);
    secondaryTile.VisualElements.ShowNameOnWide310x150Logo = true;
    secondaryTile.VisualElements.Wide310x150Logo = _wideLogoUri;
    
    
    
  4. Die RequestCreateAsync-Methode wird für die SecondaryTile-Instanz aufgerufen, um ein Flyout mit einer Vorschau der Kachel einzublenden. Außerdem werden Sie darin aufgefordert, die Erstellung zu bestätigen.

    AdventureWorks.UILogic\Services\SecondaryTileService.cs

    
    bool isPinned = await secondaryTile.RequestCreateAsync();
    
    
    
  5. Wenn Sie den Vorgang bestätigen, wird die sekundäre Kachel der Startseite hinzugefügt.

Der Workflow, der in AdventureWorks Shopper zum Lösen einer sekundären Kachel von der Startseite verwendet wird, sieht wie folgt aus:

  1. Von AdventureWorks Shopper wird das UnpinProductCommand-Element mithilfe der Schaltfläche Von "Start" lösen aufgerufen, die sich auf der App-Leiste der ItemDetailPage befindet.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    UnpinProductCommand = DelegateCommand.FromAsyncHandler(UnpinProduct, () => SelectedProduct != null);
    
    
    
  2. Von AdventureWorks Shopper wird dann überprüft, ob die Kachel nicht bereits gelöst wurde, indem das SecondaryTileExists-Prädikat in der SecondaryTileService-Instanz aufgerufen wird.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    bool isPinned = _secondaryTileService.SecondaryTileExists(tileId);
    
    
    
  3. In AdventureWorks Shopper wird die UnpinTile-Methode für die SecondaryTileService-Instanz aufgerufen, um die sekundäre Kachel zu entfernen. Die Kachel kann von der SelectedProduct.ProductNumber-Eigenschaft als eindeutige ID identifiziert werden.

    AdventureWorks.UILogic\ViewModels\ItemDetailPageViewModel.cs

    
    isPinned = (await _secondaryTileService.UnpinTile(tileId)) == false;
    
    
    

    Mit der UnpinTile-Methode wird eine neue Instanz der SecondaryTile-Klasse erstellt, indem die SelectedProduct.ProductNumber-Eigenschaft als eindeutige ID verwendet wird. Wenn Sie eine ID für eine vorhandene sekundäre Kachel angeben, wird die vorhandene sekundäre Kachel überschrieben.

    AdventureWorks.UILogic\Services\SecondaryTileService.cs

    
    var secondaryTile = new SecondaryTile(tileId);
    
    
    
  4. Die RequestDeleteAsync-Methode wird für die SecondaryTile-Instanz aufgerufen, um ein Flyout mit einer Vorschau der zu entfernenden Kachel einzublenden. Außerdem werden Sie darin aufgefordert, die Entfernung zu bestätigen.

    AdventureWorks.UILogic\Services\SecondaryTileService.cs

    
    bool isUnpinned = await secondaryTile.RequestDeleteAsync();
    
    
    
  5. Wenn Sie den Vorgang bestätigen, wird die sekundäre Kachel von der Startseite entfernt.

Hinweis  Sekundäre Kacheln können auch über die App-Leiste der Startseite entfernt werden. Wenn dies geschieht, wird die App nicht wegen der Entfernungsinformationen kontaktiert, Benutzer werden nicht um eine Bestätigung gebeten, und die App erhält keine Mitteilung, dass die Kachel nicht mehr vorhanden ist. Alle weiteren Bereinigungsaktionen, die die App beim Lösen der Kachel vorgenommen hätte, müssen von ihr beim nächsten Start ausgeführt werden.

Weitere Informationen finden Sie unter Übersicht über sekundäre Kacheln und Richtlinien für Sekundärkacheln.

Starten der App über eine sekundäre Kachel

Wenn die App gestartet wird, wird jeweils die OnLaunched-Methode in der MvvmAppBase-Klasse aufgerufen. (Die MvvmAppBase-Klasse wird über die Microsoft.Practices.Prism.StoreApps-Bibliothek bereitgestellt.) Der LaunchActivatedEventArgs-Parameter in der OnLaunched-Methode enthält den vorherigen Zustand der App und die Aktivierungsargumente. Wenn die App über die primäre Kachel gestartet wird, weist die TileId-Eigenschaft des LaunchActivatedEventArgs-Parameters den gleichen Wert wie die Anwendungs-ID im Paketmanifest auf. Wenn die App über eine sekundäre Kachel gestartet wird, verfügt die TileId-Eigenschaft über eine ID, die bei der Erstellung der sekundären Kachel angegeben wurde. Von der OnLaunched-Methode in der MvvmAppBase-Klasse wird die OnLaunchApplication-Methode in der App-Klasse nur dann aufgerufen, wenn die App nicht aus dem Anhaltezustand fortgesetzt wird oder wenn die App über eine sekundäre Kachel gestartet wurde. Mit der OnLaunchApplication-Methode, die im folgenden Codebeispiel angezeigt wird, wird App-spezifisches Startverhalten bereitgestellt.

AdventureWorks.Shopper\App.xaml.cs


protected override Task OnLaunchApplication(LaunchActivatedEventArgs args)
{
    if (args != null && !string.IsNullOrEmpty(args.Arguments))
    {
        // The app was launched from a Secondary Tile
        // Navigate to the item's page
        NavigationService.Navigate("ItemDetail", args.Arguments);
    }
    else
    {
        // Navigate to the initial page
        NavigationService.Navigate("Hub", null);
    }

    Window.Current.Activate();
    return Task.FromResult<object>(null);
}


In dieser Methode enthält der LaunchActivatedEventArgs-Parameter den vorherigen Zustand der App und die Aktivierungsargumente. Wenn die App über die App-Kachel gestartet wird, enthält die Arguments-Eigenschaft für die Aktivierung keine Daten, und es wird auf die HubPage navigiert. Falls die App über eine sekundäre Kachel gestartet wird, enthält die Arguments-Eigenschaft für die Aktivierung die Produktnummer des anzuzeigenden Produkts. Die Navigation auf die ItemDetailPage wird ausgeführt, und die Produktnummer wird an die OnNavigatedTo-Überschreibung in der ItemDetailPageViewModel-Instanz übergeben, damit das angegebene Produkt angezeigt wird.

[Nach oben]

 

 

Anzeigen:
© 2014 Microsoft