目录
一、涉及到的知识点
1.设置窗体的背景图
详见本文作者的其他文章:C#手动改变自制窗体的大小-CSDN博客 https://wenchm.blog.csdn.net/article/details/137027140
2.加载窗体背景图
详见本文作者的其他文章:C#手动改变自制窗体的大小-CSDN博客 https://wenchm.blog.csdn.net/article/details/137027140
推荐使用下列方法:
/// <summary>
/// 加载初始背景图片
/// </summary>
private void Form1_Load(object? sender, EventArgs e)
{
BackgroundImage = Properties.Resources.test;
BackgroundImageLayout = ImageLayout.Tile;
}
3.清空窗体的背景图
graphics.Clear() 方法用于清除指定的 Graphics 对象的背景。这个方法接受一个 Color 类型的参数,它指定了要使用的颜色,例如使用了Color.BlueViolet 作为参数,这意味着当调用 graphics.Clear(Color.BlueViolet) 时,窗体的背景将被清除并设置为蓝紫色。
graphics.Clear() 方法通常用于在开始绘制之前清空画布或窗体的背景。如果不调用此方法,那么任何在窗体上绘制的内容都会叠加在以前的内容之上,这可能会导致一些不需要的视觉效果。
graphics.Clear() 方法只会清除 Graphics 对象所关联的设备的背景,例如窗体或图像。如果想要清除其他设备的背景,例如打印机或文件,需要使用其他方法。
二、 示例
本实例在图片资源管理器里放置了2张图片,通过Load初始化加载一个背景图,通过鼠标单击事件清空背景图,通过鼠标双击事件加载另一张背景图。循环往复操作,观察效果。
// 清空背景图片
namespace _174
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 加载初始背景图片
/// </summary>
private void Form1_Load(object? sender, EventArgs e)
{
BackgroundImage = Properties.Resources.test;
BackgroundImageLayout = ImageLayout.Tile;
}
/// <summary>
/// 清空背景图片
/// </summary>
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
Graphics graphics = CreateGraphics(); //创建绘图对象
graphics.Clear(Color.BlueViolet); //清空背景
graphics.Dispose(); //释放绘图资源
}
/// <summary>
/// 再次加载背景图片
/// </summary>
private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
{
BackgroundImage = Properties.Resources.testnew;
BackgroundImageLayout = ImageLayout.Tile;
}
}
}