我在我的面板中创建了一个图片框,我想在本地填充图片。
这是我到目前为止所做的,以下代码只是我的面板创建代码的一小部分。
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窗体应用程序后,它显示了一个小白框,中间有一个红叉而不是图像。知道怎么解决吗?
答案 0 :(得分:8)
使用picture.ImageLocation()
设置图像可以正常工作,但您使用的是相对路径。在构建.exe
之后,请根据.exe
的位置检查您的路径。
例如,如果您的<project folder>/bin/Debug/app.exe
位于:
<project folder>/bin/Image/1.jpg
图片必须位于:
Image
当然,您可以在设计时设置图像(PictureBox
属性表上的Image
属性。)
如果必须在运行时设置它,确保知道图像位置的一种方法是将图像文件添加到项目中。例如,在项目中添加一个新文件夹,将其命名为Copy to Output Directory
。右键单击该文件夹,选择“添加现有项”并浏览到您的图像(确保文件过滤器设置为显示图像文件)。添加图片后,在属性表中将Copy if newer
设置为picture.ImageLocation = @"Image\1.jpg";
。
此时,在构建应用程序时将复制图像文件,您可以使用
{{1}}
答案 1 :(得分:1)
如果你提供了错误的路径或断开的链接,如果编译器找不到图像,图片框会在其正文上显示一个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");