Partager via


Épingler des vignettes secondaires à partir d’applications de bureau

Une application de bureau telle qu’une application WinUI 3 (à l’aide du Kit de développement logiciel (SDK) d’application Windows Presentation Foundation (WPF) ou Windows Forms (WinForms), peut épingler une vignette secondaire à l’aide d’une application empaquetée (voir Génération d’un package MSIX à partir de votre code). C’était anciennement appelé Pont du bureau.

Capture d’écran des vignettes secondaires

Important

Nécessite Fall Creators Update : vous devez cibler le SDK 16299 et exécuter la build 16299 ou ultérieure pour épingler des vignettes secondaires à partir d’applications Pont du bureau.

L’ajout d’une vignette secondaire à partir de votre application Windows App SDK, WPF ou WinForms est très similaire à une application UWP pure. La seule différence est que vous devez spécifier votre handle de fenêtre principale (HWND). Cela est dû au fait que lors de l’épinglage d’une vignette, Windows affiche une boîte de dialogue modale demandant à l’utilisateur de confirmer s’il souhaite épingler la vignette. Si l’application de bureau ne configure pas l’objet SecondaryTile avec la fenêtre propriétaire, Windows ne sait pas où dessiner la boîte de dialogue et l’opération échoue.

Empaqueter votre application

Si vous créez une application sdk d’application Windows avec WinUI 3, vous devez utiliser une application empaquetée pour épingler des vignettes secondaires. Aucune étape supplémentaire n’est requise pour empaqueter votre application si vous commencez par le modèle d’application empaqueté.

Si vous utilisez WPF ou WinForms et que vous n’avez pas empaqueté votre application avec le Pont du bureau, vous devez le faire avant de pouvoir utiliser des API Windows Runtime (voir Génération d’un package MSIX à partir de votre code).

Initialiser et épingler une vignette secondaire à l’aide de l’interface IInitializeWithWindow

Remarque

Cette section concerne WinUI 3 ; et pour WPF/WinForms avec .NET 6 ou version ultérieure.

  1. Dans le fichier projet, définissez la propriété TargetFramework sur une valeur qui vous donne accès aux API Windows Runtime (voir .NET 6 et versions ultérieures : utiliser l’option Moniker du Framework cible). Cela inclut l’accès à l’espace de noms WinRT.Interop (consultez les API d’interopérabilité des appels à partir d’une application .NET). Par exemple :

    <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. Initialisez un nouvel objet de vignette secondaire exactement comme vous le feriez avec une application UWP normale. Pour en savoir plus sur la création et l’épinglage de vignettes secondaires, consultez Épingler des vignettes secondaires.

    // 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. Récupérez un handle de fenêtre et initialisez l’objet de vignette secondaire avec ce handle. Dans le code ci-dessous, this est une référence à l’objet Window (qu’il s’agisse d’une fenêtre WinUI 3, d’une fenêtre WPF ou d’une fenêtre WinForms). Pour plus d’informations, consultez Récupérer un handle de fenêtre (HWND) et afficher des objets d’interface utilisateur WinRT qui dépendent de CoreWindow.

    var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
    WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
    
  4. Enfin, demandez d’épingler la vignette comme vous le feriez dans une application UWP normale.

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

Envoyer des notifications de vignette

Important

Nécessite avril 2018 version 17134.81 ou ultérieure : vous devez exécuter la build 17134.81 ou ultérieure pour envoyer des notifications de vignette ou de badge à des vignettes secondaires à partir de Pont du bureau applications. Avant cette mise à jour de maintenance .81, une exception 0x80070490 Élément introuvable se produit lors de l’envoi de notifications de vignette ou de badge à des vignettes secondaires à partir de Pont du bureau applications.

L’envoi de notifications de vignette ou de badge est identique à celui des applications UWP. Consultez Envoyer une notification de vignette locale pour commencer.

Ressources