在我的WPF应用程序中,我在图像中加载的PNG徽标在设计时显示,但在运行时不显示
这可能是我想念的简单事情。 我有一个png文件,我想在我的WPF窗口中用作* Image *控件的源代码。 我通过项目属性>资源>添加现有文件添加了这个PNG文件,并首先作为链接文件(然后当它不起作用时嵌入)。然后我将XAML文件中的图像控件的* Source *添加到此。 没有代码,简单点击。
令人烦恼的问题是,当我设计WPF窗口时,图像显示。 当我运行它时,它不会。 什么也没出现。
更新:下面添加了XAML代码
我错过了什么? 谢谢
在XAML中指定图像URI时,通常不必编写完整的URI。 除了另一个答案中显示的完整Pack URI之外,您还应该能够写下这个:
但是,您必须确保图像文件位于Visual Studio项目中名为images
的文件夹中,并且其Build Action设置为Resource
, 如此答案所示。
或者,您可以将构建操作设置为Content
并将复制到输出目录设置为Copy always
Copy if newer
或Copy if newer
。 在这种情况下,图像不会作为资源嵌入到程序的程序集中,而只是复制到相对于可执行文件的目录中。
XAML中的(相对)图像URI在两种情况下都有效。
只有在您的其他executables
(输出文件夹)所在的位置复制文件时,才应使用siteOfOrigin
。 对于Resources,您应该使用application
。
Source="pack://application:,,,/images/ServerMainLogo.png"
有关进一步说明包URI的信息,请参阅此链接。
- 确保项目中的图像属性具有“Build Action”=“Resource”,而不是“Embedded Resource”
-
在xaml中,选择图像标记后,使用属性窗口选择Source下拉列表,因为图像显示在下拉列表中! 这让visual studio为我格式化了字符串。 字符串visual studio格式化
对于我的形象是:
Source="pack://application:,,,/FamilyExplorer;component/Resources/Folder.png"/>
FamilyExplorer
是我的项目名称, Resources/Folder.png
是图像的位置。