如何使用ImageLocation将图像放入我的图片框中?

问题描述:

我在我的面板中创建了一个picturebox,我想用本地图像填充它。如何使用ImageLocation将图像放入我的图片框中?

这是我迄今为止所做的,以下代码仅仅是我的面板创建代码的一小部分。

PictureBox picture = new PictureBox 
     { 
      Name = "pictureBox", 
      Size = new Size(100, 50), 
      Location = new Point(14, 17) 
     }; 
     p.Controls.Add(picture); 
     picture.ImageLocation = @"..\Image\1.jpg"; 

它做的工作,但不能完全作为后我启动我的C#Windows窗体应用程序,它强制显示一个白色的盒子在中间,而不是像一个红色的叉。任何想法如何解决它?

设置使用picture.ImageLocation()工作正常,图像,但是你正在使用相对路径。在构建完成后,根据.exe的位置检查路径。

例如,如果您.exe位于:

<project folder>/bin/Debug/app.exe

的图像将不得不在:

<project folder>/bin/Image/1.jpg


当然,你可以只设置设计时的图像(PictureBox属性上的Image属性片)。

如果您必须在运行时进行设置,确保知道图像位置的一种方法是将图像文件添加到项目中。例如,为您的项目添加一个新文件夹,将其命名为Image。右键单击该文件夹,选择“添加现有项目”并浏览至图像(确保将文件过滤器设置为显示图像文件)。添加图像后,在属性表中将Copy to Output Directory设置为Copy if newer

在这一点上,当你构建应用程序,你可以回复使用

picture.ImageLocation = @"Image\1.jpg"; 
+0

嗨,感谢您的回复。我如何检查路径与.exe的位置? – Thomas

+0

这是一个相对路径...因此,无论您的可执行文件位于何处,查找1个文件夹,然后从那里查看Image Image文件夹。 –

+0

哦。好的解决了这个问题。它现在能够加载“图片”,但应用程序加载后,它出现了一个白色的盒子而不是图像。任何想法如何解决这个问题?或者这是否与图像大小和我的图片大小? – Thomas

如果您提供了一个错误的路径或断开的链接,如果编译器找不到图像,图片框会在其正文上显示一个X图标。

PictureBox picture = new PictureBox 
     { 
      Name = "pictureBox", 
      Size = new Size(100, 50), 
      Location = new Point(14, 17), 
      Image = Image.FromFile(@"c:\Images\test.jpg"), 
      SizeMode = PictureBoxSizeMode.CenterImage 
     }; 
p.Controls.Add(picture); 

OR

PictureBox picture = new PictureBox 
     { 
      Name = "pictureBox", 
      Size = new Size(100, 50), 
      Location = new Point(14, 17), 
      ImageLocation = @"c:\Images\test.jpg", 
      SizeMode = PictureBoxSizeMode.CenterImage 
     }; 
p.Controls.Add(picture); 

我不知道,你把图像文件夹结构,但你可以找到路径波纹管

picture.ImageLocation = Path.Combine(System.Windows.Forms.Application.StartupPath, "Resources\Images\1.jpg"); 
+0

感谢的图像文件将被复制。它现在显示一个白色框。是因为我的图像大小吗?因为原始图像和我的图片框图像大小不匹配。 – Thomas

+0

@Thomas你有尝试使用完整路径吗? – Damith

+0

是的我已经尝试使用完整路径。它会显示一个白色框。通常我都不会显示任何东西。如果没有找到图像,就会出现红叉。但现在我认为它能够找到图像文件,但它只是显示一个白色框。 – Thomas