如何在 C# 中跨 2 个图片框画一条线?

How to draw a line across 2 pictureboxes in C#?

我目前的任务是编写一个程序来在两张图片之间画线。将来该线将旋转但仍连接为 1 线。现在先尝试让线路连接两张图片。 目前使用 2 个面板作为图片,并将大图片框设置为透明覆盖两个面板作为 canvas 用于绘制线条但是在进行测试时 运行 表格是空白的,就像图片中一样。 我的问题是。

  1. 如何解决这个空白错误?如果可以解决此问题,则可以在大图片框上绘制跨图片的线条。
  2. 如果不能。有没有其他方法可以在 2 个图片框之间绘制线条/连接图片?非常感谢你。

我不知道搜索该错误的关键字。我尝试使用图片框和面板,但结果是一样的。

以 2 个面板作为图片框的形式

覆盖面板的大图片框

空白错误结果

编辑。尝试将 1 个大图片框拆分为 2 个图像。它适用于线条图,但下面按钮的空白错误又回来了。

在您的主代码中,将图像加载到内存中。此方法使文件保持锁定状态,如果需要,可以通过将文件加载到内存流中来避免这种情况。

    Image image1 = Image.FromFile(@"C:/Users/RPC1940/Pictures/500px.jpg");
    Image image2 = Image.FromFile(@"C:/Users/RPC1940/Pictures/500px2.jpg");

然后在 picturebox 绘制事件上将图像绘制到主 canvas 上,并在顶部绘制您的线条。这不考虑拉伸等,但应该给你一个开始。

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        int halfWidth = pictureBox1.Width / 2;
        e.Graphics.DrawImage(image1, new Rectangle(0, 0, halfWidth, pictureBox1.Height));
        e.Graphics.DrawImage(image2, new Rectangle(halfWidth + 1, 0, halfWidth, pictureBox1.Height));
        e.Graphics.DrawLine(Pens.Black, 140, 140, 300, 300);
    }