如何在C#中从资源文件中设置面板的背景图像?

时间:2013-05-05 17:48:12

标签: c# winforms

我想在C#Windows Forms应用程序中更改面板的背景图像。我想要设置为背景的图像位于Solution Explorer中的资源文件夹中。我如何在代码中使用它?

我试过了:

panel1.BackgroundImage = Properties.Resources.Chalkboard; 

但它不起作用。

5 个答案:

答案 0 :(得分:7)

我像你一样尝试了相同的代码,当我按下按钮时它工作正常。

private void pnlBgBtn_Click(object sender, EventArgs e)
{
    panel1.BackgroundImage = Properties.Resources.image;
}

'Properties.Resources.image'中的名称'image'应该是您为图像指定的名称。 图像的正确名称应该是project-proje下项目属性中显示的名称。

答案 1 :(得分:2)

properties.Resources类不会将每个资源作为图像返回,因此您必须像这样将图像应用到图像

panel1.BackgroundImage = (Image)(Properties.Resourses.Chalkboard);

答案 2 :(得分:1)

你可以尝试一下:

 Bitmap bmp = new Bitmap(System.Reflection.Assembly.GetEntryAssembly().
    GetManifestResourceStream("MyProject.Resources.myimage.png"));

 panel1.BackgroundImage = bmp;

答案 3 :(得分:1)

如果要在页面加载时设置面板的背景图像,则必须编写以下代码:

private void panel1_Paint(object sender, PaintEventArgs e)
{
    Assembly asm = Assembly.GetExecutingAssembly();
    Bitmap backgroundImage = new Bitmap(asm.GetManifestResourceStream("Image913.jpg"));

    e.Graphics.DrawImage(
        backgroundImage, 
        this.ClientRectangle,
        new Rectangle(0, 0, backgroundImage.Width, backgroundImage.Height),
        GraphicsUnit.Pixel);
}

如果要设置除面板以外的图像,请使用以下代码加载:

Bitmap bmp = new Bitmap(System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.photo0018.jpg.png"));

panel1.BackgroundImage = bmp;

答案 4 :(得分:0)

您可以在“属性”项目文件夹中创建图标资源。当您打开属性时,单击Resources.resx并在那里添加资源 - >添加新图标菜单项。这将创建一个图标。您还可以将现有文件中的图标加载到资源中,在这种情况下,图标将构建在可执行文件中。因此,当您的图标作为资源添加时,它将被赋予一些名称。