如何在 C# 中跨 2 个图片框画一条线?
How to draw a line across 2 pictureboxes in C#?
我目前的任务是编写一个程序来在两张图片之间画线。将来该线将旋转但仍连接为 1 线。现在先尝试让线路连接两张图片。
目前使用 2 个面板作为图片,并将大图片框设置为透明覆盖两个面板作为 canvas 用于绘制线条但是在进行测试时 运行 表格是空白的,就像图片中一样。
我的问题是。
- 如何解决这个空白错误?如果可以解决此问题,则可以在大图片框上绘制跨图片的线条。
- 如果不能。有没有其他方法可以在 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);
}
我目前的任务是编写一个程序来在两张图片之间画线。将来该线将旋转但仍连接为 1 线。现在先尝试让线路连接两张图片。 目前使用 2 个面板作为图片,并将大图片框设置为透明覆盖两个面板作为 canvas 用于绘制线条但是在进行测试时 运行 表格是空白的,就像图片中一样。 我的问题是。
- 如何解决这个空白错误?如果可以解决此问题,则可以在大图片框上绘制跨图片的线条。
- 如果不能。有没有其他方法可以在 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);
}