【问题标题】:How do I put an image into my picturebox using ImageLocation?如何使用 ImageLocation 将图像放入图片框中?
【发布时间】:2011-11-05 03:25:32
【问题描述】:

我在我的面板中创建了一个图片框,我想用本地图像填充它。

这是我到目前为止所做的,以下代码只是我面板创建代码的一小部分。

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 窗体应用程序后,它只显示一个中间带有红十字的小白框,而不是图像。知道如何解决吗?

【问题讨论】:

    标签: c# winforms user-interface


    【解决方案1】:

    使用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"; 
    

    【讨论】:

    • 您好,感谢您的回复。如何根据 .exe 的位置检查路径?
    • 这是一个相对路径...所以无论您的可执行文件位于何处,查找 1 个文件夹,然后从那里查看 Image 文件夹。
    • 哦。好的解决了这个问题。它现在能够加载“图片”,但是在应用程序加载后它只是想出了一个白框而不是图像。知道如何解决这个问题吗?还是这与图像大小和我的图片框大小有关?
    • @Thomas,不 - 不应该与图像或图片框大小有关。除非图像更大并且具有白色背景?那么图片框可能只显示左上角,这将是白色的。
    • @Thomas - 您可以使用SizeMode(尝试Zoom)确保图像大小适合PictureBox
    【解决方案2】:

    如果您提供了错误的路径或断开的链接,如果编译器找不到图像,图片框将在其主体上显示一个 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);
    

    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");
    

    【讨论】:

    • 感谢您的回复。它现在显示一个白框。是因为我的图像大小吗?因为原图和我的图片框图片大小不匹配。
    • @Thomas 你尝试过使用完整路径吗?
    • 是的,我尝试过使用完整路径。它改为显示一个白框。通常我什么都不会显示。如果没有找到图像,就会有一个红十字。但现在我认为它能够找到图像文件,但它只是显示一个白框。
    • 尝试将 SizeMode 设置为 PictureBoxSizeMode.CenterImage
    猜你喜欢
    • 2010-10-19
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多