繁体   English   中英

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

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

我目前的任务是制作一个程序来在 2 张图片之间画线。 将来该线将旋转但仍连接为 1 条线。 现在首先尝试使两条图片之间的线连接。 目前使用 2 个面板作为图片,大图片框设置为透明,覆盖两个面板作为画布用于绘制线条,但在进行测试运行时,表单是空白的,如图所示。 我的问题是。

  1. 如何修复这个空白错误? 如果可以解决此问题,则可以在大图片框上绘制跨图片的线条。
  2. 如果不能。 有没有其他方法可以在 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");

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

    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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM