我尝试使用 WPF C#桌面应用程序显示Windows 10 Toast。
可悲的是,非UWP或商店应用程序中关于Windows 10通知的API和一般支持似乎非常有限和混乱。 最近发布了UWP Community Toolkit,这似乎试图让我们更容易。 还有这个商店应用Notifications Visualizer,这有助于制作像这样的Toasts:
我接着尝试使用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总是丢失:
我发现的有关这些通知的大多数信息都已过时或无用。 有人可以对此有所了解吗? 谢谢。
答案 0 :(得分:9)
看起来使用.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由。