知方号

知方号

C#窗体Form1添加背景图:窗体属性 vs 窗体属性重写 vs PictureBox 控件 vs resources.GetObject方法 vs GetObject方法+PictureBox 控件<有特色的图片背景图>

C#窗体Form1添加背景图:窗体属性 vs 窗体属性重写 vs PictureBox 控件 vs resources.GetObject方法 vs GetObject方法+PictureBox 控件

目录

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里设计添加背景图片了,完整的代码见本节的开始。运行结果:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。