为什么单窗口打包 winforms 应用程序的任务栏中不显示徽章通知?

Car*_*ald 5 .net c# windows winforms uwp

我制作了一个winforms应用程序并将目标框架更改为net5.0-windows10.0.19041.0。这使我可以访问 Windows.UI.Notifications。我使用以下 C# 代码来制作徽章通知:

var xmlText = "<badge value="alert"/>";
var xmlDoc = new Windows.Data.Xml.Dom.XmlDocument();
xmlDoc.LoadXml(xmlText);
var badgeNotification = new Windows.UI.Notifications.BadgeNotification(xmlDoc);

var bu = Windows.UI.Notifications.BadgeUpdateManager.CreateBadgeUpdaterForApplication();

bu.Update(badgeNotification);
Run Code Online (Sandbox Code Playgroud)

当打包的应用程序运行时,这会在我的 Windows 10 计算机上的开始菜单中正确显示徽章,但不会在任务栏中显示徽章。当在应用程序中打开第二个窗口时,徽章会显示在任务栏中,但当再次关闭第二个窗口时,徽章会消失。这是有意的行为吗?如果是这样,如何在打包的 winforms 应用程序的任务栏中显示徽章?

Ted*_*siu 1

他们似乎已使用 MSIX 禁用了 Win32 的此行为,但问题仍然存在:

“对于使用 MSIX 的 Win32 应用程序,我们禁止 UWP 徽章出现在任务栏上,因为 Win32 应用程序可以使用 ITaskbarList 创建自定义任务栏“徽章”。”

https://github.com/microsoft/microsoft-ui-xaml/issues/1919

所以这似乎是预期的行为,但默默地失败给我更像是一种错误的感觉。我拉扯了一些头发,认为是我自己的代码有问题。

我不知道 MAUI 中有任何其他解决方法,因此我还在 MAUI 项目上提出了一个问题:

https://github.com/dotnet/maui/issues/13994