WPF 桌面应用程序,Windows 10 Notification Toast 2016(UWP 社区工具包)

WPF Desktop App, Windows 10 Notification Toast 2016 (UWP Community Toolkit)

我正在尝试使用我的 WPF C# 桌面应用程序显示 Windows 10 个 Toasts

遗憾的是,API 和关于 Windows 10 个通知的一般支持在非 UWP 或商店应用程序中似乎相当有限和混乱。 最近发布了 UWP Community Toolkit,这似乎试图让我们的事情变得更容易。 还有这个商店应用程序 Notifications Visualizer,它有助于制作这样的吐司:

我继续尝试使用 C# 和 UWP 社区工具包提供的 API 生成 Toast。

using Microsoft.Toolkit.Uwp.Notifications;

ToastContent toastContent = new ToastContent()
{
    Visual = new ToastVisual()
    {
        BindingGeneric = new ToastBindingGeneric()
        {
            Children =
            {
                new AdaptiveText()
                {
                    Text = "Matt sent you a friend request"
                },
                new AdaptiveText()
                {
                    Text = "Hey, wanna dress up as wizards and ride around on our hoverboards together?"
                }
            },
            AppLogoOverride = new ToastGenericAppLogo()
            {
                Source = "https://unsplash.it/64?image=1005",
                HintCrop = ToastGenericAppLogoCrop.Circle
            }
        }
    }
};


XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(toastContent.GetContent());

var toast = new ToastNotification(xmlDoc);
ToastNotificationManager.CreateToastNotifier(AppId).Show(toast); // Display toast

不幸的是,无论我尝试什么,我似乎都无法得到相同的结果,由于某种原因图像总是丢失:

我发现的关于这些通知的大部分信息都已过时或无用。 有人可以对此有所了解吗? 谢谢。

无法单独使用 UWP 工具包完成此操作

使用 .NET Standard 似乎只能分两步实现,其中之一超出了 UWP 工具包的范围。

.NET 标准应用程序需要 COM 服务器和 特殊 开始菜单快捷方式才能正确使用 Windows 10 操作中心。 UWP Apps 似乎不需要或已经具备等效功能。 这两个步骤应该在应用程序安装时执行,而这显然是 Microsoft UWP Toolkit 没有参与的事情。 因此,单独使用 UWP 工具包不仅不能而且永远无法提供完整的解决方案,以自包含的方式显示 Windows 10 Toasts for .NET Standard。

备选方案

我发现了一个不起眼的 C# Project on Github,其名称中包含 'Microsoft',它开箱即用,无需 UWP 工具包。 它要求您提供一个 GUID 和一个 AppID 字符串,然后用于注册 COM 服务器和创建快捷方式。

一个看起来更干净的替代方案是 this library,它似乎提供了相同的功能。我还要测试一下。

这两种解决方案都应该与 Microsoft 的 NotificationsExtensions 库一起使用,它是 UWP 工具包的前身,有助于生成 XML Toast 的代码。