You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET C#中为Windows Toast通知设置自定义图标与应用名

解决Windows Toast通知归因区图标自定义问题

Windows Toast通知顶部的归因区(应用标识栏)图标并非通过Toast内容的视觉/操作元素直接修改,而是与你发送通知时指定的AppId关联的系统应用标识绑定。以下是针对不同类型应用的具体解决方案:

桌面应用(WPF/WinForms等非UWP)

方法1:通过快捷方式关联图标

  • 右键创建你的应用快捷方式,进入「属性」→「更改图标」,选择你要在归因区显示的图标文件。
  • 将该快捷方式移动到目录 %APPDATA%\Microsoft\Windows\Start Menu\Programs 下,确保系统能识别到AppId对应的标识。
  • 发送Toast时,代码中指定的AppId必须与快捷方式的文件名(不含.lnk后缀)完全一致。

方法2:通过注册表注册AppId与图标

  • 打开注册表编辑器,定位到 HKEY_CURRENT_USER\Software\Classes\AppUserModelId。
  • 新建项,名称设为你的目标AppId。
  • 在该项下新建两个字符串值:
    • DisplayName:设置归因区显示的自定义应用名(也可通过Toast代码的Attribution覆盖)。
    • IconUri:设置图标路径,格式为 file:///C:/绝对路径/你的图标文件.ico。

UWP应用

直接修改项目中的Package.appxmanifest文件:

  • 打开manifest编辑器,切换到「视觉资产」选项卡。
  • 更新「Square44x44Logo」(通知专用图标)为你需要的图标文件,系统会自动将其关联到Toast归因区。

代码示例(桌面应用)

using Windows.UI.Notifications;
using Microsoft.Toolkit.Uwp.Notifications;

// 构建Toast内容
var toastContent = new ToastContent()
{
    Visual = new ToastVisual()
    {
        BindingGeneric = new ToastBindingGeneric()
        {
            Children = { new AdaptiveText() { Text = "这是一条测试通知" } }
        }
    },
    // 自定义归因区应用名(可选,若注册表已设置DisplayName也可省略)
    Attribution = new ToastAttributionText() { Text = "我的自定义应用" }
};

// 创建并发送通知
var toastNotification = new ToastNotification(toastContent.GetXml())
{
    AppId = "MyCustomAppId" // 需与快捷方式名称或注册表项名称一致
};

ToastNotificationManager.CreateToastNotifier("MyCustomAppId").Show(toastNotification);

关键说明

归因区的图标由系统根据AppId匹配应用标识,无法通过Toast的XML或视觉元素直接设置——这也是你之前修改视觉/操作元素无效的原因。只要确保AppId关联的图标配置正确,发送通知时归因区就会自动显示对应图标。

内容的提问来源于stack exchange,提问作者user20138168

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:10:40