Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een app-melding is een pop-up van de gebruikersinterface die buiten het venster van uw app wordt weergegeven, waarbij tijdige informatie of acties aan de gebruiker worden geleverd. Meldingen kunnen puur informatief zijn, uw app starten wanneer erop wordt geklikt of een achtergrondactie activeren zonder uw app op de voorgrond te plaatsen.
In dit artikel wordt u begeleid bij de stappen voor het maken en verzenden van een app-melding vanuit een WinForms-app en wordt de activering verwerkt wanneer de gebruiker ermee communiceert. In dit artikel worden de API's Windows App SDKMicrosoft.Windows.AppNotifications gebruikt.
Zie het overzicht van app-meldingen en -richtlijnen voor andere frameworks voor een overzicht van app-meldingen.
In dit artikel worden lokale meldingen behandeld. Zie Pushmeldingen voor informatie over het leveren van meldingen van een cloudservice.
Belangrijk
Meldingen voor apps met verhoogde beheerrechten worden momenteel niet ondersteund.
Vereiste voorwaarden
- Een WinForms-app gericht op .NET 6 of hoger
- Het NuGet-pakket Windows App SDK (
Microsoft.WindowsAppSDK)
Stel uw project in
Controleer in uw projectbestand (.csproj) dat de TargetFramework een target framework voor Windows bevat:
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Voeg het Windows App SDK NuGet-pakket toe:
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
Voor uitgepakte apps voegt u het volgende toe:
<WindowsPackageType>None</WindowsPackageType>
Registreren voor app-meldingen
Registreer Program.csu in voor meldingen voordat u belt Application.Run(). U moet uw NotificationInvoked-handler registreren voordat u Register aanroept.
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".
});
}
}
Opmerking
Voor uitgepakte apps stelt Register() automatisch de COM-serverregistratie in waarmee Windows uw app kan starten wanneer op een melding wordt geklikt. U hoeft com-activering of een AUMID niet handmatig te configureren.
Een app-melding verzenden
Gebruik AppNotificationBuilder om inhoud van meldingen samen te stellen en AppNotificationManager.Show om een melding vanuit uw formulier te verzenden.
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);
}
Zie App-meldingsinhoud voor informatie over het toevoegen van knoppen, afbeeldingen, invoer en andere uitgebreide inhoud aan uw meldingen.
Installatie van verpakte app
Voor niet-verpakte WinForms-apps verwerkt Register() de COM-registratie automatisch. Voor verpakte apps (MSIX) moet u extensies toevoegen aan uw Package.appxmanifest. Zie Packaged app instellen in het WPF-artikel voor de vereiste manifestvermeldingen.
Verwante inhoud
Windows developer