wpf - WPF UserControl 中的资源 URI,托管在 Windows 窗体应用程序中
问题描述
我有一个 WPF UserControl,它使用一些 PNG 位图资源作为其 UI 的一部分。目前,这些文件通过Build Action: Content和Copy to Output Directory: Do not copy引用。此 UserControl 上的元素使用以下 URI 来访问资源:
pack://application:,,,Resources/ui/Cross.png
在设计器中工作正常。
然后通过 ElementHost 控件在 Windows 窗体应用程序中使用用户控件,此时所有图像链接都停止工作。UserControl 在它自己的程序集中,Windows 窗体应用程序正在引用该程序集。
我也尝试将 URI 更改为:pack://application:,,,Assembly.Name;component/Resources/ui/Cross.png
我已进一步尝试阅读此内容,但没有任何帮助。
我剩下的唯一选择是包含代码以手动设置用户控件上所有 Image 元素的 ImageSource,这需要大量工作。我觉得必须有办法更好地解决这个问题。
解决方案
构建操作:内容和复制到输出目录:不要复制
这种组合不起作用。Content
要求复制文件。
但是,您应该使用 Build Action Resource
。并且您的 Pack URI 在,,,
.
它应该是
pack://application:,,,/AssemblyName;component/Resources/ui/Cross.png
前提是图像文件是 Visual Studio 项目的一部分,位于ui
名为Resources
.
有关详细信息,请参阅资源文件包 URI。
推荐阅读
- r - 列表中每个矩阵的 for 循环
- aws-cli - aws glue get-databases 在 CLI 上返回空列表
- python - Django 使用多部分/表单数据和字典测试发布请求
- python - Python Sqlite3 从表中获取值,就像字典一样
- firebase - 重定向没有任何错误 - displayName
- python - Python(迭代问题)与练习
- api - 是否可以从与会者的副本中检索共享的事件属性(由组织者日历拥有)?
- reactjs - 打字稿使用字符串或字符串[]
- azure-devops-migration-tools - 如何在 VstsSyncMigrator 工具下迁移工作项的特定状态(即只有工作项的活动状态)
- sql - 根据对象合并数据并且日期没有间隔