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

时间:2016-09-28 10:06:20

标签: c# wpf windows-10 windows-10-desktop windows-community-toolkit

我尝试使用 WPF C#桌面应用程序显示Windows 10 Toast。

可悲的是,非UWP或商店应用程序中关于Windows 10通知的API和一般支持似乎非常有限和混乱。 最近发布了UWP Community Toolkit,这似乎试图让我们更容易。 还有这个商店应用Notifications Visualizer,这有助于制作像这样的Toasts:

enter image description here

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

  

使用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

不幸的是,无论我尝试什么,我似乎都无法得到相同的结果,因为某些原因,Image总是丢失:

enter image description here

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

1 个答案:

答案 0 :(得分:9)

单独使用UWP Toolkit无法做到这一点

看起来使用.NET Standard,这只能通过两个步骤实现,其中一个不在UWP Toolkit的范围内。

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

替代

我发现了一个名不见经传的C# Project on Github,其名称中包含“Microsoft”,它在没有UWP工具包的情况下开箱即用。 它要求您提供GUID和AppID字符串,然后用于注册COM服务器并创建快捷方式。

更清洁的替代品是this library,它似乎提供相同的功能。我还是要测试它。

这两个解决方案都应该与Microsoft的NotificationsExtensions librabry一起使用,它是UWP Toolkit的前身,有助于生成XML代码Toast由。