Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une notification d’application est une fenêtre contextuelle d’interface utilisateur qui s’affiche en dehors de la fenêtre de votre application, en fournissant des informations ou des actions en temps opportun à l’utilisateur. Les notifications peuvent être purement informationnelles, peuvent lancer votre application quand un clic est activé ou déclencher une action en arrière-plan sans amener votre application au premier plan.
Cet article vous guide tout au long des étapes de création et d’envoi d’une notification d’application à partir d’une application WinForms, puis gère l’activation lorsque l’utilisateur interagit avec lui. Cet article utilise les API SDK d'application WindowsMicrosoft.Windows.AppNotifications.
Pour obtenir une vue d’ensemble des notifications d’application et des conseils pour d’autres infrastructures, consultez la vue d’ensemble des notifications d’application.
Cet article traite des notifications locales. Pour plus d’informations sur la remise de notifications à partir d’un service cloud, consultez Notifications Push.
Important
Les notifications pour les applications avec élévation de privilèges (administrateur) ne sont actuellement pas prises en charge.
Prerequisites
- Une application WinForms ciblant .NET 6 ou version ultérieure
- Paquet NuGet SDK d'application Windows (
Microsoft.WindowsAppSDK)
Configuration de votre projet
Dans votre fichier projet (.csproj), vérifiez que la TargetFramework inclut une infrastructure cible Windows :
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Ajoutez le package NuGet SDK d'application Windows :
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
Pour les applications non empaquetées, ajoutez :
<WindowsPackageType>None</WindowsPackageType>
S’inscrire aux notifications d’application
Dans Program.cs, inscrivez-vous aux notifications avant d’appeler Application.Run(). Vous devez inscrire votre gestionnaire NotificationInvoked avant d’appeler Register.
Program.cs
using Microsoft.Windows.AppNotifications;
namespace WinFormsNotifications;
static class Program
{
[STAThread]
static void Main()
{
// Register the notification handler before calling Register
AppNotificationManager.Default.NotificationInvoked += OnNotificationInvoked;
AppNotificationManager.Default.Register();
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
// Unregister when the app exits
AppNotificationManager.Default.Unregister();
}
private static void OnNotificationInvoked(
AppNotificationManager sender,
AppNotificationActivatedEventArgs args)
{
// NotificationInvoked is raised on a background thread,
// so use Control.Invoke to marshal to the UI thread
var form = Application.OpenForms.Count > 0
? Application.OpenForms[0] as Form1
: null;
form?.Invoke(() =>
{
// Parse args.Argument to determine what action to take.
// args.Argument contains the arguments from the notification
// or button that was clicked, as key=value pairs separated
// by '&', for example "action=reply&conversationId=9813".
});
}
}
Note
Pour les applications non empaquetées, Register() configure automatiquement l’inscription du serveur COM qui permet Windows de lancer votre application lorsqu’une notification est cliqué. Vous n’avez pas besoin de configurer l’activation COM ou un AUMID manuellement.
Envoyer une notification d’application
Utilisez AppNotificationBuilder pour construire le contenu de notification et AppNotificationManager.Show pour envoyer une notification à partir de votre formulaire.
Form1.cs
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
private void SendNotification()
{
var notification = new AppNotificationBuilder()
.AddArgument("action", "viewConversation")
.AddArgument("conversationId", "9813")
.AddText("Andrew sent you a picture")
.AddText("Check this out, The Enchantments in Washington!")
.BuildNotification();
AppNotificationManager.Default.Show(notification);
}
Pour plus d’informations sur l’ajout de boutons, d’images, d’entrées et d’autres contenus enrichis à vos notifications, consultez le contenu de notification d’application.
Configuration de l’application empaquetée
Pour les applications WinForms non empaquetées, Register() gère automatiquement l’inscription COM. Pour les applications empaquetées (MSIX), vous devez ajouter des extensions à votre Package.appxmanifest. Consultez Configuration de l’application empaquetée dans l’article WPF pour les entrées de manifeste requises.
Contenu connexe
Windows developer