我想在我的wpf应用程序中添加吐司通知。
我已经遵循了微软的Send a local toast notification from desktop C# apps,但我被困在第5步。
我不知道如何让这段代码工作:
// Construct the visuals of the toast (using Notifications library)
ToastContent toastContent = new ToastContentBuilder()
.AddToastActivationInfo("action=viewConversation&conversationId=5", ToastActivationType.Foreground)
.AddText("Hello world!")
.GetToastContent();
// And create the toast notification
var toast = new ToastNotification(toastContent.GetXml());
// And then show it
DesktopNotificationManagerCompat.CreateToastNotifier().Show(toast);
此外,我还添加了<TargetPlatformVersion>10.0</TargetPlatformVersion>
到。csproj,对Windows.Data
、Windows.UI
的引用。
在这一点上,我得到了两个错误:The type 'XmlDocument' is defined in an assembly that is not referenced. You must add a reference to assembly 'Windows.Foundation.UniversalApiContract, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'
The type 'ToastNotifier' is defined in an assembly that is not referenced. You must add a reference to assembly 'Windows.Foundation.UniversalApiContract, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'
当我从C:\Program Files (x86)\Windows Kits\10\References\10.0.18362.0\Windows.Foundation.UniversalApiContract\8.0.0.0\Windows.Foundation.UniversalApiContract.winmd
添加Windows.Foundation.UniversalApiContract
作为引用时,我得到了以下错误:
两个“Windows”中都存在类型“ToastNotification”。基金会。通用ApiContract,版本=8。0.0.0,Culture=neutral,PublicKeyToken=null,ContentType=WindowsRuntime' and 'Windows.UI,版本=255。255.255.255,Culture=neutral,PublicKeyToken=null,ContentType=WindowsRuntime'
我该怎么解决?
请注意,我也尝试使用'ready example',但结果相同。
2条答案
按热度按时间3yhwsihp1#
新:
在WPF应用程序中有一种使用UWP吐司通知的方法。
1.将
<TargetPlatformVersion>10.0</TargetPlatformVersion>
添加到。CSProj1.如果你安装了任何软件包,点击
packages.config
文件并选择Migrate packages.config to PackageReference...
(重要的一步-这是我错过的东西)1.现在在Package Manager Console中安装UWP。通知包e.例如:
Install-Package Microsoft.Toolkit.Uwp.Notifications -Version 7.0.2
Check version现在,您应该能够使用所有的uwp通知功能。
旧:
正如@Andy在评论中建议的那样,NuGet包已经准备好了:github.com/Federerer/Notifications.Wpf
如果你只是想要一个简单的通知,而没有onClick事件等。您可以使用此解决方案:
1.将
<TargetPlatformVersion>10.0</TargetPlatformVersion>
添加到。CSProj1.添加对
Windows.UI
和Windows.Data
的引用1.添加以下用途:
using Windows.Data.Xml.Dom; using Windows.UI.Notifications;
1.使用以下代码显示通知:
More info
nhn9ugyo2#
这个文档做得很好,link在这里。
关注
Desktop(unpackaged)
以了解WPF应用程序的具体细节。