C# XAML WPF自定义控件库未在外部项目中显示嵌入图像
我发布了这篇文章,由于缺乏有效的、标记正确的解决方案,我将予以答复。 问题是,当您创建使用图像的自定义控件或外部库时,图像可能不会显示在使用该库的程序中 在我的特定情况下,我有使用自定义控件基类的用户控件 由于某种原因,图像会出现在usercontrol的设计视图和外部程序的设计窗口中。但是,在运行时,它不会在外部程序窗口中显示图像 我从其他解决方案中尝试了以下所有方法:C# XAML WPF自定义控件库未在外部项目中显示嵌入图像,c#,wpf,xaml,wpf-controls,C#,Wpf,Xaml,Wpf Controls,我发布了这篇文章,由于缺乏有效的、标记正确的解决方案,我将予以答复。 问题是,当您创建使用图像的自定义控件或外部库时,图像可能不会显示在使用该库的程序中 在我的特定情况下,我有使用自定义控件基类的用户控件 由于某种原因,图像会出现在usercontrol的设计视图和外部程序的设计窗口中。但是,在运行时,它不会在外部程序窗口中显示图像 我从其他解决方案中尝试了以下所有方法: 在DP的xaml中使用pack://、,命令(在设计视图中工作) 在外部程序中引用单个xaml文件(从OO和SOLID的角
- 在DP的xaml中使用
命令(在设计视图中工作)pack://、,
- 在外部程序中引用单个xaml文件(从OO和SOLID的角度来看,这是一个坏主意)
- 在URI字符串之前使用
(适用于设计视图)。/
- 使用
构建图像EmbeddedResource
- 创建一个转换器来处理字符串(不必要,会给系统添加额外的垃圾,而且工作不太好)
- 在自定义控件上创建额外的依赖项属性(从绑定的角度来看,这是一个混乱和坏主意)
- 使用
(适用于设计视图)组件;组件/[文件夹名称]/[图像名称]
- 使用
(适用于设计视图)[文件夹名称/图像名称]
- 更改
文件和自定义类的静态构造函数以包括assemblyinfo.cs
文件Generic.xaml
/[assembly];component/[folder name]/[image name]
,请注意字符串的开头是a/,这是我一次尝试中唯一缺少的东西
即使在字符串中使用pack命令,在程序集之前使用/也不起作用
因此,对于名为myLibrary的库项目,一个名为MyControl的自定义控件,一个名为resources的图像文件夹,以及该文件夹中名为myTestImage.png的图像。对自定义控件的调用将是:
<local:MyControl ImageSource="/myLibrary;component/resources/myTestImage.png" />
有两件事:1)它不是“打包命令”,而是方案,它有特定的格式。控件中的正确用法是
pack://application:,,,/我的图书馆;component/resources/myTestImage.png
notpack://、、/myLibrary;component/resources/myTestImage.png
,这听起来像是您尝试过的。2) 如果你看一下你链接到的MSDN论坛帖子,你会发现他们实际上从StackOverflow问题中得到了答案,这基本上是一个重复的问题。我实际上尝试了这两个问题,但都不起作用。是的,这确实是相同的结果,但是由于它的措辞方式,当我搜索时,我无法找到它。我只是在MSDN论坛上发现的,他们在那里提到了更多的错误。