通过WPF中的XAML代码加载外部图像?

时间:2010-04-18 12:32:14

标签: c# wpf image xaml expression-blend

我的lock.png文件夹中的WPF exe文件旁边有一个图像images。 现在,我将把它作为图像加载到WPF项目中,我使用了以下XAML代码:

<Image Stretch="Fill" Source="pack://siteoforigin:,,,/images/lock.png" />

虽然有效,但我正在处理项目时Expression BlendVisual Studio没有显示。
如何在这些情况下显示外部图像?

6 个答案:

答案 0 :(得分:4)

尝试动态加载图片。这应该是xaml:

<Image Stretch="Fill" Name="MyImage" />

这在代码背后。在Window_Loaded或Window构造函数中:

if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "images/lock.png"))
            {
                Uri uri = new Uri(AppDomain.CurrentDomain.BaseDirectory + "images/lock.png", UriKind.RelativeOrAbsolute);
                MyImage.Source = BitmapFrame.Create(uri);
            }

答案 1 :(得分:4)

使用格式如:     项目;组件/ ImagePath的

e.g。

<Image Source="ImageDemo;component/Images/ISIBAR.png" Name="custLogo"/>

ImageDemo是项目名称,Image / ISIBAR.png是项目中的路径

答案 2 :(得分:1)

如果图像相对于您的EXE位置,请执行

<Image Source="Images\lock.png" />

如果图像不是相对的,那么你就会遇到更大的问题。 pack语法仅在您将资源“打包”到程序集中时才有用。

松散图像和混合的问题是Blend将你的exe托管在它控制的临时目录中,并查找相对于该临时目录的图像,这将阻止你依赖的任何路径。

答案 3 :(得分:1)

可能更容易:

<Image x:Name="ImageObject" Source="file:///C:\\1.jpg"/>

记住反斜杠!

答案 4 :(得分:0)

我有同样的问题。

确保将图像构建操作设置为“资源”。 (右键单击图像,然后转到属性,将构建操作设置为资源)

此外,代替siteoforigin使用应用程序权限

<强>来源: https://stackoverflow.com/a/18175145/2672788

答案 5 :(得分:-1)

您的主要IDE是Visual Studio吗? 如果是,为什么要手动?在“属性”窗口中,您只需浏览要与图像组件一起使用的图像的方式