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

WPF中Image路径含component时程序集加载失败问题求助

解决WPF中带component的Pack URI图片加载失败问题

问题重现

使用不带component的路径pack://application:,,,/Registration_and_Login_Forms/Images/key-icon.png能正常加载图片,但改用带component的路径pack://application:,,,/Registration_and_Login_Forms;component/Images/key-icon.png时,出现“无法加载文件或程序集”错误,同时需要兼容XAML中的<customcontrols:BindablePasswordBox>标签。

相关代码:

<PasswordBox.Background>
    <ImageBrush ImageSource="pack://application:,,,/Registration_and_Login_Forms;component/Images/key-icon.png"
                Stretch="None"
                AlignmentX="Left"/>
</PasswordBox.Background>
<customcontrols:BindablePasswordBox Password="{Binding Password}"
                                    Height="28"
                                    Margin="0,5,0,0">
</customcontrols:BindablePasswordBox>

解决步骤

  • 核对程序集名称:带component的Pack URI格式要求/程序集名称;component/部分的程序集名必须和项目实际的程序集名称完全一致。右键项目→属性→应用程序→程序集名称,确认这里的名称和路径里的Registration_and_Login_Forms完全匹配(注意大小写、空格)。
  • 检查图片资源属性:右键key-icon.png文件→属性→生成操作,确保设置为Resource。只有标记为Resource的资源文件才能通过带component的Pack URI访问。
  • 简化路径写法:如果当前XAML文件和图片资源在同一个程序集里,可以省略程序集名称,直接用pack://application:,,,;component/Images/key-icon.png,甚至更简洁的/Images/key-icon.png(WPF会自动解析为正确的Pack URI),这种写法既兼容自定义控件,又能避免程序集名写错的问题。
  • 排查自定义控件引用:确认<customcontrols:BindablePasswordBox>的命名空间引用正确,比如xmlns:customcontrols="clr-namespace:你的自定义控件命名空间;assembly=对应程序集名称"。如果自定义控件在单独的程序集,要确保已添加该程序集的引用,避免控件引用错误间接导致资源加载失败。

内容的提问来源于stack exchange,提问作者Євгеній Анатолійович Ткач

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:26:15