3

我想更改 C# Windows 窗体应用程序中面板的背景图像。我要设置为背景的图像位于解决方案资源管理器的资源文件夹中。如何在代码中使用它?

我试过这个:

panel1.BackgroundImage = Properties.Resources.Chalkboard; 

但它没有用。

4

5 回答 5

10

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

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

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

于 2013-05-05T18:00:39.927 回答
2

properties.Resources 类不会将每个资源都作为图像返回,因此您必须像这样对 Image 应用强制转换

panel1.BackgroundImage = (Image)(Properties.Resourses.Chalkboard);
于 2015-01-11T01:25:10.160 回答
1

你可以试试这个:

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

 panel1.BackgroundImage = bmp;
于 2013-05-05T18:02:57.493 回答
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;
于 2013-05-06T05:42:08.550 回答
0

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

于 2013-05-05T17:54:03.320 回答