Anheften von sekundären Kacheln an „Start“
Hinweis
Live-Kacheln sind ein Windows 10-Feature, das in späteren Versionen von Windows nicht unterstützt wird. Für neue Apps wird empfohlen, die aktuellen Anleitungen für App-Symbole zu befolgen.
In diesem Thema erfahren Sie, wie Sie eine sekundäre Kachel für Ihre Windows App erstellen und sie an das Startmenü anheften.
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 Vielzahl von Konstruktoren, die Sie verwenden können, aber verwenden Sie den Konstruktor, der die tileId
erforderlichen Eigenschaften einnimmt, square150x150Logo
displayName
arguments
und desiredSize
trägt dazu bei, sicherzustellen, dass Sie alle erforderlichen Eigenschaften festlegen.
// 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
Für Desktopanwendungen, die die Desktop-Brücke verwenden, müssen Sie zunächst einen zusätzlichen Schritt ausführen, wie in "Anheften von 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 alles andere auf der sekundären Kachel aktualisieren müssen, können Sie verwenden RequestUpdateAsync
.
// 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 Ihr Benutzer angeheftet hat, anstatt SecondaryTile.Exists
sie zu verwenden, können Sie alternativ verwenden SecondaryTile.FindAllAsync
.
// 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.