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

如何在WinUI 3 C++/WinRT中更改应用图标?求XAML/C++代码示例

WinUI 3 C++/WinRT 更改应用图标的最简方式

一、最简配置方式(无需代码)

这是最省心的官方推荐方案,直接通过项目配置替换默认图标:

  • 准备好包含多尺寸的图标文件(推荐 .ico 格式,或多分辨率 .png 序列)
  • 在Visual Studio中右键项目 → 属性 → 配置属性 → 链接器 → 资源 → 输入 → 图标,替换为你的图标文件路径(例:$(ProjectDir)Assets\MyAppIcon.ico)
  • 同步更新应用包清单(Package.appxmanifest):在「视觉元素」选项卡中,替换「图标」「徽标」对应的文件路径

二、代码方式(指定路径动态/静态设置)

如果需要动态控制或自定义标题栏图标,可使用以下代码:

1. C++/WinRT 动态设置窗口图标

在窗口初始化逻辑中添加:

#include <winrt/Microsoft.UI.Xaml.Window.h>
#include <windows.h>

// 获取当前窗口句柄
auto windowHandle = reinterpret_cast<HWND>(winrt::Microsoft::UI::Xaml::Window::Current().NativeWindow());

// 加载指定路径的图标文件
HICON hIcon = LoadImageW(
    nullptr,
    L"C:\\Your\\Icon\\Path\\CustomIcon.ico", // 替换为图标绝对路径
    IMAGE_ICON,
    0, 0,
    LR_LOADFROMFILE | LR_DEFAULTSIZE
);

// 设置窗口大/小图标
SendMessageW(windowHandle, WM_SETICON, ICON_BIG, reinterpret_cast<LPARAM>(hIcon));
SendMessageW(windowHandle, WM_SETICON, ICON_SMALL, reinterpret_cast<LPARAM>(hIcon));

2. XAML 静态设置自定义标题栏图标

若使用自定义标题栏,可直接在XAML中指定图标源:

<Grid>
    <!-- 自定义标题栏区域 -->
    <Image Width="32" Height="32" Source="ms-appx:///Assets/CustomTitleIcon.png"/>
</Grid>

注意:需确保图标文件已在项目中设置「内容」属性,路径使用ms-appx:///协议指向项目Assets目录。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:32:33