如何在WPF中设置Toast通知的显示名称(无需修改程序集名)
问题:WPF应用中修改Toast通知顶部显示名称(不修改程序集名)
我在基于.NET 6 (net6.0-windows10.0.17763.0)的简易WPF应用中测试Microsoft.Toolkit.Uwp.Notifications的Toast通知功能。当前Toast通知顶部显示的是项目程序集名WpfApp1,我希望在不修改程序集名的前提下,将这个名称改为自定义的合适名称,请问是否可以实现?
注:WinUI 3中可通过Package.Manifest的“Display Name”属性修改该文本,但我需要的是WPF应用的解决方案。
我的Toast代码如下:
new ToastContentBuilder() .AddArgument("action", "viewConversation") .AddArgument("conversationId", 9813) .AddText("Andrew sent you a picture") .AddText("Check this out, The Enchantments in Washington!") .AddHeader("1", "LOOK HERE", "") .Show();
解决方案
可以实现,无需修改程序集名,以下是两种可行方案:
方案1:直接在Toast构建时指定显示名称
如果使用的Microsoft.Toolkit.Uwp.Notifications版本在v7.0及以上,可直接通过SetAppDisplayName方法自定义顶部显示名称,无需额外配置:
new ToastContentBuilder() .SetAppDisplayName("你的自定义应用名称") // 添加该行设置显示名 .AddArgument("action", "viewConversation") .AddArgument("conversationId", 9813) .AddText("Andrew给你发了一张图片") .AddText("看看这个,华盛顿的魔法之地!") .AddHeader("1", "看这里", "") .Show();
方案2:通过关联快捷方式设置(系统级统一生效)
如果需要让系统通知、任务栏跳转等场景的应用名称保持一致,可通过配置应用快捷方式实现:
- 在
App.xaml.cs的OnStartup方法中添加快捷方式注册代码:
using Windows.ApplicationModel; using Windows.UI.Notifications; protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // 创建或获取当前应用的快捷方式 var shortcut = DesktopNotificationManagerCompat.CreateShortcutForCurrentApp(); if (shortcut != null) { // 设置自定义显示名称 shortcut.DisplayName = "你的自定义应用名称"; shortcut.Save(); } // 注册唯一的应用AUMID(可自定义,如com.yourcompany.yourapp) DesktopNotificationManagerCompat.RegisterAumId("com.yourcompany.yourapp"); }
- 首次运行后,可能需要重启系统或重新登录,让系统缓存更新生效。
内容的提问来源于stack exchange,提问作者Johan Danforth
相关产品推荐
相关产品推荐

