目录
1.使用窗体的 BackgroundImage 属性加载
2.使用窗体的 BackgroundImage 属性重写
3.使用 PictureBox 控件
4.使用resources.GetObject方法
5.使用resources.GetObject和PictureBox 控件方法
在.Windows窗体应用中给窗体Form1添加背景图片,有很多方法:
1.使用窗体的 BackgroundImage 属性加载这是最简单的设计方法,也是大多数人容易想到和使用的方法。
在 Form1 设计视图中,选择 Form1 窗体。在属性窗口中,找到 BackgroundImage 属性,点击省略号按钮(…),然后选择 “背景图.jpg” 文件。图片文件可以放在程序的启动目录下。在Form1.Designer.cs中会自动生成并加载图片。 //Form1.Designer.cs中自动生成以下语句System.ComponentModel.ComponentResourceManager resources = new(typeof(Form1));BackgroundImage = resources.GetObject("$this.BackgroundImage") as Image;操作完后不用运行就可以看到背景图效果,比如:
2.使用窗体的 BackgroundImage 属性重写在上述的操作中,加载了背景图后,如果想重写图片(改变图片路径、更换图片)或操作图片适应窗体大小等。如下操作:
设置 BackgroundImageLayout 属性为 “Stretch”,以使图片适应窗体大小。本例中,即使在窗体属性中已经通过BackgroundImage 属性加载了图片bc.jpg,在运行时也会被图片text.jpg重写,并用Stretch属性适应窗体大小。
text.jpg如果位于启动目录不需要带路径,如果不在启动目录,需要带文件路径。
namespace _123{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { BackgroundImage = Image.FromFile("text.jpg"); BackgroundImageLayout = ImageLayout.Stretch; } }} 3.使用 PictureBox 控件 在 Form1 设计视图中,从工具箱拖放一个 PictureBox 控件到 Form1 上。设置 PictureBox 控件的 SizeMode 属性为 “StretchImage”,以使图片适应控件大小。或者Dock模式选择Fill。(两者有区别,区别在哪里,读者去领会吧)在 Form1 的 Load 事件处理程序中添加以下代码,以加载背景图并设置 PictureBox 控件的大小。这种方法,可以不经过属性设置,只通过编程的方法实现。
namespace _123{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { pictureBox1.BackgroundImage = Image.FromFile("bc.jpg"); pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; pictureBox1.Size = new Size(ClientSize.Width, ClientSize.Height); } }} 4.使用resources.GetObject方法使用resources.GetObject方法可以从应用程序资源中获取对象,包括图片。
在 Form1 设计视图中,选择 Form1 窗体。在属性窗口中,找到BackgroundImage属性,点击省略号按钮(…),然后选择 “bc.jpg” 文件。此时,图片会被添加到应用程序资源中。在 Form1 的 Load 事件处理程序中添加以下代码,以从资源中获取背景图并设置窗体的背景图像。 namespace _123{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { BackgroundImage = Properties.Resources.GetObject("bc"); BackgroundImageLayout = ImageLayout.Stretch; } }}在使用 resources.GetObject 方法时,需要确保图片文件已添加到应用程序资源中,并且在代码中使用正确的资源名称。在本示例中,我们假设图片文件 “bc.jpg” 已经被添加到应用程序资源中,并且资源名称为 “bc”。
如何添加资源图片,见第5节。
5.使用resources.GetObject和PictureBox 控件方法 在 Form1 设计视图中,从工具箱拖放一个PictureBox控件到 Form1 上。设置PictureBox控件的SizeMode属性为 “StretchImage”,以使图片适应控件大小。在 Form1 的 Load 事件处理程序中添加以下代码,以从资源中获取背景图并设置PictureBox控件的大小。 namespace _123_2{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { pictureBox1.Image = Properties.Resources.GetObject("bc"); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.Size = new Size(ClientSize.Width, ClientSize.Height); } }}在使用resources.GetObject方法时,需要确保图片文件已添加到应用程序资源中,并且在代码中使用正确的资源名称。在本示例中,我们假设图片文件 “bc.jpg” 已经被添加到应用程序资源中,并且资源名称为 “bc”。
在项目里添加资源的方法:右键点击资源管理器里的项目,属性 → 在弹出的窗体里,左侧,找到“资源”,“常规” ,→ 点击,创建或打开程序集资源, → 添加资源 → 添加现有文件,→ 找到图片位置,并添加图片(默认图片已经位于启动目录),可以多选图片,确定 → 在项目的资源属性里添加图片完毕。添加图片后的资源视图如下:
项目的Properties属性文件夹内容如下:
还没完事,接着在项目的Resources.Designer.cs里添加Resources.GetObject()方法,增加如下代码:
//bc是应将在资源管理器里添加的图片,见前述的截图//更改图片的名称,就要更改本代码的"bc"internal static Image GetObject(string v){ // 将参数 "v" 与一个字符串常量进行比较 if (v == "bc") { // 如果参数等于 "bc",则返回一个示例图像 return Properties.Resources.bc; } else { // 如果参数不等于 "bc",则返回 null return null; }}好了,现在可以在Form1.cs里设计添加背景图片了,完整的代码见本节的开始。运行结果: