[C#] 纯文本查看 复制代码
using System;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ImageScroll
{
public partial class Form1 : Form
{
private Bitmap bitmap; // 图片对象
private int offsetX = 0, offsetY = 0; // 偏移量
private int speedX = 5, speedY = 5; // 移动速度
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 加载图片
bitmap = new Bitmap(Properties.Resources.image);
// 设置窗口大小为全屏
Width = Screen.PrimaryScreen.Bounds.Width;
Height = Screen.PrimaryScreen.Bounds.Height;
// 启动异步任务更新图像位置
Task.Run(async () =>
{
while (true)
{
await Task.Delay(20); // 等待20ms
MoveImage(); // 更新图像位置
Invalidate(); // 刷新窗口
}
});
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 在窗口上绘制当前位置的图像
Graphics graphics = e.Graphics;
graphics.DrawImage(bitmap, offsetX, offsetY);
}
private void MoveImage()
{
// 计算新的偏移量
offsetX += speedX;
offsetY += speedY;
// 判断是否超出边界
if (offsetX <= -bitmap.Width || offsetX >= Width)
{
speedX = -speedX;
offsetX += 2 * speedX;
}
if (offsetY <= -bitmap.Height || offsetY >= Height)
{
speedY = -speedY;
offsetY += 2 * speedY;
}
}
}
}