WPF UserControl 中的资源 URI,托管在 Windows Forms 应用程序中
Resource URI in WPF UserControl, which is hosted in Windows Forms application
我有一个 WPF 用户控件,它使用一些 PNG 位图资源作为它 UI 的一部分。目前,这些文件通过 Build Action: Content 和 Copy to Output Directory: Do not copy 引用。此 UserControl 上的元素使用以下 URI 来访问资源:
pack://application:,,,Resources/ui/Cross.png
在设计器中工作正常。
然后通过 ElementHost 控件在 Windows Forms 应用程序中使用用户控件,此时所有图像链接都停止工作。 UserControl 在它自己的程序集中,Windows Forms 应用程序正在引用该程序集。
我也试过将 URI 更改为:pack://application:,,,Assembly.Name;component/Resources/ui/Cross.png
我进一步尝试阅读 this 没有帮助。
我剩下的唯一选择是包含代码以手动设置用户控件上所有 Image 元素的 ImageSource,这需要大量工作。我觉得一定有办法更好地解决这个问题。
Build Action: Content and a Copy to Output Directory: Do not copy
该组合不起作用。 Content
要求复制文件。
但是,您应该使用构建操作 Resource
。并且您的 Pack URI 在 ,,,
.
之后遗漏了一个斜杠
应该是
pack://application:,,,/AssemblyName;component/Resources/ui/Cross.png
假设图像文件是您的 Visual Studio 项目的一部分,位于名为 Resources
.
的项目文件夹中名为 ui
的子文件夹中
我有一个 WPF 用户控件,它使用一些 PNG 位图资源作为它 UI 的一部分。目前,这些文件通过 Build Action: Content 和 Copy to Output Directory: Do not copy 引用。此 UserControl 上的元素使用以下 URI 来访问资源:
pack://application:,,,Resources/ui/Cross.png
在设计器中工作正常。
然后通过 ElementHost 控件在 Windows Forms 应用程序中使用用户控件,此时所有图像链接都停止工作。 UserControl 在它自己的程序集中,Windows Forms 应用程序正在引用该程序集。
我也试过将 URI 更改为:pack://application:,,,Assembly.Name;component/Resources/ui/Cross.png
我进一步尝试阅读 this 没有帮助。
我剩下的唯一选择是包含代码以手动设置用户控件上所有 Image 元素的 ImageSource,这需要大量工作。我觉得一定有办法更好地解决这个问题。
Build Action: Content and a Copy to Output Directory: Do not copy
该组合不起作用。 Content
要求复制文件。
但是,您应该使用构建操作 Resource
。并且您的 Pack URI 在 ,,,
.
应该是
pack://application:,,,/AssemblyName;component/Resources/ui/Cross.png
假设图像文件是您的 Visual Studio 项目的一部分,位于名为 Resources
.
ui
的子文件夹中