Net 7中使用Microsoft.Toolkit.Uwp.Notifications遇Show方法不可用问题
解决ToastContentBuilder.Show()无法编译的问题
原因分析
在.net7.0-windows桌面项目中,ToastContentBuilder的Show()方法仅针对UWP应用设计,不适用于WPF/WinForms这类传统桌面项目,因此会出现编译错误。
解决方案
1. 确认NuGet包安装
确保已安装最新版的Microsoft.Toolkit.Uwp.Notifications NuGet包,可通过NuGet包管理器安装,或执行以下命令:
Install-Package Microsoft.Toolkit.Uwp.Notifications -Version 8.2.0
2. 替换Show()方法调用
将原代码中的builder.Show()替换为基于ToastNotificationManagerCompat的显示逻辑:
var builder = new ToastContentBuilder() .AddArgument("conversationId", 9813) .AddText("Some text") .AddButton(new ToastButton() .SetContent("Archive") .AddArgument("action", "archive")); // 替换builder.Show()为以下两行代码 var toastNotification = builder.CreateToastNotification(); ToastNotificationManagerCompat.CreateToastNotifier().Show(toastNotification);
3. 确保命名空间引用
代码文件顶部需包含以下命名空间:
using Microsoft.Toolkit.Uwp.Notifications;
4. 项目配置检查
确认项目文件(.csproj)中的目标框架及项目类型配置正确:
<TargetFramework>net7.0-windows</TargetFramework> <UseWPF>true</UseWPF> <!-- WPF项目添加此行 --> <!-- WinForms项目则添加:<UseWindowsForms>true</UseWindowsForms> -->
完成以上修改后,代码即可正常编译并显示Toast通知。
内容的提问来源于stack exchange,提问作者tech74
相关产品推荐
相关产品推荐

