Anheften von sekundären Kacheln an „Start“

In diesem Thema erfahren Sie, wie Sie eine sekundäre Kachel für Ihre Windows App erstellen und sie an das Startmenü anheften.

Screenshot of secondary tiles

Weitere Informationen zu sekundären Kacheln finden Sie in der Übersicht über sekundäre Kacheln.

Hinzufügen eines Namespaces

Der Windows.UI.StartScreen-Namespace enthält die Klasse „SecondaryTile“.

using Windows.UI.StartScreen;

Initialisieren der sekundären Kachel

Sekundäre Kacheln bestehen aus einer Reihe von Schlüsselkomponenten.

  • TileId: Ein eindeutiger Bezeichner, mit dem Sie die Kachel innerhalb anderer sekundärer Kacheln identifizieren können.
  • DisplayName: Der Name, der auf der Kachel angezeigt werden soll.
  • Arguments: Die Argumente, die Sie an Ihre App zurückgeben möchten, wenn Benutzer*innen auf die Kachel klicken.
  • Square150x150Logo: Das erforderliche Logo, das auf der mittelgroßen Kachel angezeigt wird (und auf der kleinen Kachel verkleinert wird, wenn kein kleines Logo vorhanden ist).

Sie MÜSSEN für alle der oben genannten Eigenschaften initialisierte Werte bereitstellen, andernfalls wird eine Ausnahme ausgelöst.

Es gibt eine Reihe von Konstruktoren, die Sie verwenden können. Wenn Sie jedoch den Konstruktor verwenden, der „tileId“, „displayName“, „arguments“, „square150x150Logo“ und „desiredSize“ akzeptiert, können Sie sicherstellen, dass alle erforderlichen Eigenschaften festgelegt wurden.

// Construct a unique tile ID, which you will need to use later for updating the tile
string tileId = "City" + zipCode;

// Use a display name you like
string displayName = cityName;

// Provide all the required info in arguments so that when user
// clicks your tile, you can navigate them to the correct content
string arguments = "action=viewCity&zipCode=" + zipCode;

// Initialize the tile with required arguments
SecondaryTile tile = new SecondaryTile(
    tileId,
    displayName,
    arguments,
    new Uri("ms-appx:///Assets/CityTiles/Square150x150Logo.png"),
    TileSize.Default);

Optional: Hinzufügen von Unterstützung für größere Kacheln

Wenn Sie umfangreiche Kachelbenachrichtigungen auf Ihrer sekundären Kachel anzeigen möchten, sollten Sie den Benutzer*innen das Ändern der Kachelgröße ermöglichen, damit sie noch mehr von Ihrem Inhalt sehen können.

Um breite und große Kachelgrößen zu unterstützen, müssen Sie das Wide310x150Logo und Square310x310Logo angeben. Außerdem sollten Sie nach Möglichkeit das Square71x71Logo für die kleine Kachelgröße angeben (andernfalls wird das erforderliche Square150x150Logo für die kleine Kachel verkleinert).

Sie können auch ein eindeutiges Square44x44Logo bereitstellen, das optional in der rechten unteren Ecke angezeigt wird, wenn eine Benachrichtigung vorliegt. Wenn Sie kein solches Logo bereitstellen, wird stattdessen das Square44x44Logo aus Ihrer primären Kachel verwendet.

// Enable wide and large tile sizes
tile.VisualElements.Wide310x150Logo = new Uri("ms-appx:///Assets/CityTiles/Wide310x150Logo.png");
tile.VisualElements.Square310x310Logo = new Uri("ms-appx:///Assets/CityTiles/Square310x310Logo.png");

// Add a small size logo for better looking small tile
tile.VisualElements.Square71x71Logo = new Uri("ms-appx:///Assets/CityTiles/Square71x71Logo.png");

// Add a unique corner logo for the secondary tile
tile.VisualElements.Square44x44Logo = new Uri("ms-appx:///Assets/CityTiles/Square44x44Logo.png");

Optional: Aktivieren der Anzeige des Anzeigenamens

Standardmäßig wird der Anzeigename NICHT angezeigt. Fügen Sie den folgenden Code hinzu, um den Anzeigenamen für die Größen „medium/wide/large“ anzuzeigen.

// Show the display name on all sizes
tile.VisualElements.ShowNameOnSquare150x150Logo = true;
tile.VisualElements.ShowNameOnWide310x150Logo = true;
tile.VisualElements.ShowNameOnSquare310x310Logo = true;

Optional: Sekundäre 3D-Kacheln

Sie können Ihre sekundäre Kachel für Windows Mixed Reality erweitern, indem Sie 3D-Ressourcen hinzufügen. Benutzer*innen können 3D-Kacheln statt im Startmenü direkt in ihrer Windows Mixed Reality Startumgebung platzieren, wenn Sie Ihre App in einer Mixed Reality-Umgebung verwenden. Sie können zum Beispiel 360°-Fotosphären erstellen, die direkt mit einer App zum Betrachten von 360°-Fotos verknüpft sind, oder die Benutzer*innen können ein 3D-Modell eines Stuhls aus einem Möbelkatalog platzieren, das bei Auswahl eine Detailseite mit den Preis- und Farboptionen für dieses Objekt öffnet. Informationen zu den ersten Schritten finden Sie in der Mixed Reality-Dokumentation für Entwickler*innen.

Anheften der sekundären Kachel

Abschließend fordern Sie an, die Kachel anzuheften. Beachten Sie, dass dieser Aufruf aus einem UI-Thread erfolgen muss. Auf dem Desktop wird ein Dialogfeld angezeigt, in dem die Benutzer*innen gefragt werden, ob sie die Kachel anheften möchten.

Wichtig

Wenn eine Desktopanwendung mit Verwendung der Desktop-Brücke vorliegt, müssen Sie zunächst einen zusätzlichen Schritt ausführen, wie unter Anheften sekundärer Kacheln aus Desktop-Apps beschrieben.

// Pin the tile
bool isPinned = await tile.RequestCreateAsync();

// TODO: Update UI to reflect whether user can now either unpin or pin

Überprüfen, ob eine sekundäre Kachel vorhanden ist

Wenn Ihre Benutzer*innen eine Seite in Ihrer App besuchen, die sie bereits an die Startseite angeheftet haben, sollten Sie stattdessen eine Schaltfläche „Lösen“ anzeigen.

Daher müssen Sie bei der Auswahl der anzuzeigenden Schaltfläche zunächst überprüfen, ob die sekundäre Kachel derzeit angeheftet ist.

// Check if the secondary tile is pinned
bool isPinned = SecondaryTile.Exists(tileId);

// TODO: Update UI to reflect whether user can either unpin or pin

Lösen einer sekundären Kachel

Wenn die Kachel derzeit angeheftet ist und die Benutzer*innen auf die Schaltfläche „Lösen“ klicken, soll die Kachel gelöst (gelöscht) werden.

// Initialize a secondary tile with the same tile ID you want removed
SecondaryTile toBeDeleted = new SecondaryTile(tileId);

// And then unpin the tile
await toBeDeleted.RequestDeleteAsync();

Aktualisieren einer sekundären Kachel

Wenn Sie die Logos, den Anzeigenamen oder andere Elemente auf der sekundären Kachel aktualisieren müssen, können Sie RequestUpdateAsync verwenden.

// Initialize a secondary tile with the same tile ID you want to update
SecondaryTile tile = new SecondaryTile(tileId);

// Assign ALL properties, including ones you aren't changing

// And then update it
await tile.UpdateAsync();

Auflisten aller angehefteten sekundären Kacheln

Wenn Sie alle Kacheln ermitteln müssen, die Ihre Benutzer*innen angeheftet haben, können Sie anstelle von SecondaryTile.Exists alternativ SecondaryTile.FindAllAsync() verwenden.

// Get all secondary tiles
var tiles = await SecondaryTile.FindAllAsync();

Senden eine Kachelbenachrichtigung

Informationen zum Anzeigen umfangreicher Inhalte auf Ihrer Kachel mithilfe von Kachelbenachrichtigungen finden Sie unter Senden einer lokalen Kachelbenachrichtigung.