Anheften sekundärer Kacheln aus Desktop-Apps

Eine Desktop-App wie eine WinUI 3-App (mit dem Windows App SDK) oder eine Windows Presentation Foundation (WPF) oder Windows Forms (WinForms)-App kann eine sekundäre Kachel mithilfe einer verpackten App anheften (siehe Erstellen eines MSIX-Pakets aus Ihrem Code). Dies wurde früher als Desktop-Brücke bezeichnet.

Screenshot der sekundären Kacheln

Wichtig

Erfordert Fall Creators Update: Sie müssen sdk 16299 als Ziel verwenden und Build 16299 oder höher ausführen, um sekundäre Kacheln aus Desktop-Brücke Apps anzuheften.

Das Hinzufügen einer sekundären Kachel aus Ihrem Windows App SDK, WPF oder WinForms-Anwendung ist einer reinen UWP-App sehr ähnlich. Der einzige Unterschied besteht darin, dass Sie den Hauptfensterziehpunkt (HWND) angeben müssen. Dies liegt daran, dass Windows beim Anheften einer Kachel ein modales Dialogfeld anzeigt, in dem der Benutzer gefragt wird, ob er die Kachel anheften möchte. Wenn die Desktopanwendung das SecondaryTile-Objekt nicht mit dem Besitzerfenster konfiguriert, weiß Windows nicht, wo das Dialogfeld gezeichnet werden soll, und der Vorgang schlägt fehl.

Verpacken der App

Wenn Sie eine Windows App SDK-Anwendung mit WinUI 3 erstellen, müssen Sie eine verpackte Anwendung verwenden, um sekundäre Kacheln anzuheften. Es sind keine zusätzlichen Schritte erforderlich, um Ihre App zu packen, wenn Sie mit der verpackten App-Vorlage beginnen.

Wenn Sie WPF oder WinForms verwenden und Ihre App nicht mit dem Desktop-Brücke verpackt haben, müssen Sie dies tun, bevor Sie alle Windows-Runtime-APIs verwenden können (siehe Erstellen eines MSIX-Pakets aus Ihrem Code).

Initialisieren und Anheften einer sekundären Kachel mithilfe der IInitializeWithWindow-Schnittstelle

Hinweis

Dieser Abschnitt ist für WinUI 3 vorgesehen; und für WPF/WinForms mit .NET 6 oder höher.

  1. Legen Sie in der Projektdatei die TargetFramework-Eigenschaft auf einen Wert fest, der Ihnen Zugriff auf die Windows-Runtime-APIs ermöglicht (siehe .NET 6 und höher: Verwenden Der Zielframework-Moniker-Option). Dies umfasst den Zugriff auf den WinRT.Interop-Namespace (siehe Aufrufen von Interop-APIs aus einer .NET-App). Zum Beispiel:

    <PropertyGroup>
      <!-- You can also target other versions of the Windows SDK and .NET; for example, "net6.0-windows10.0.19041.0" -->
      <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    </PropertyGroup>
    
  2. Initialisieren Sie ein neues sekundäres Kachelobjekt genau wie bei einer normalen UWP-App. Weitere Informationen zum Erstellen und Anheften von sekundären Kacheln finden Sie unter "Sekundäre Kacheln anheften".

    // Initialize the tile with required arguments
    var tile = new Windows.UI.StartScreen.SecondaryTile(
        "myTileId5391",
        "Display name",
        "myActivationArgs",
        new Uri("ms-appx:///Assets/Square150x150Logo.png"),
        TileSize.Default);
    
  3. Rufen Sie ein Fensterhandle ab, und initialisieren Sie das sekundäre Kachelobjekt mit diesem Handle. Im folgenden this Code ist ein Verweis auf das Window-Objekt (ob WinUI 3-Fenster, WPF-Fenster oder WinForms-Fenster). Weitere Informationen finden Sie unter Abrufen eines Fensterhandles (HWND) und Anzeigen von WinRT-UI-Objekten, die von CoreWindow abhängen.

    var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
    WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
    
  4. Fordern Sie schließlich an, die Kachel wie in einer normalen UWP-App anzuheften.

    // Pin the tile
    bool isPinned = await tile.RequestCreateAsync();
    
    // Here, update UI to reflect whether user can now either unpin or pin
    

Senden von Kachelbenachrichtigungen

Wichtig

Erfordert April 2018, Version 17134.81 oder höher: Sie müssen Build 17134.81 oder höher ausführen, um Kachel- oder Signalbenachrichtigungen an sekundäre Kacheln von Desktop-Brücke Apps zu senden. Vor diesem Wartungsupdate von .81 tritt beim Senden von Kachel- oder Signalbenachrichtigungen an sekundäre Kacheln aus Desktop-Brücke Apps eine 0x80070490 Element nicht gefundene Ausnahme auf.

Das Senden von Kachel- oder Signalbenachrichtigungen ist identisch mit UWP-Apps. Weitere Informationen finden Sie unter Senden einer lokalen Kachelbenachrichtigung , um zu beginnen.

Ressourcen