C# 如何创建将两个列表项与行连接起来的控件?

C# 如何创建将两个列表项与行连接起来的控件?,c#,wpf,controls,custom-controls,C#,Wpf,Controls,Custom Controls,我正在尝试在.NET中创建一个控件,该控件显示两个列表,其中包含用户可以使用拖放将它们连接起来的项,并绘制显示连接的线条。此控件可用于多种用途(映射两个列表、连接问题和答案、建立关系等) 这样做的目的是可以简单地添加和删除这些行。我不确定我应该使用直线还是曲线,因为如果所有项目都连接起来,那么使用曲线可能会更难发现连接 我知道使用WinForms会很痛苦,而且我没有升级控件外观的灵活性。我想我应该走WPF的路,但不确定如何解决这个问题。如果您能举个例子,我们将不胜感激 我打算创造什么。当然,一旦

我正在尝试在.NET中创建一个控件,该控件显示两个列表,其中包含用户可以使用拖放将它们连接起来的项,并绘制显示连接的线条。此控件可用于多种用途(映射两个列表、连接问题和答案、建立关系等)

这样做的目的是可以简单地添加和删除这些行。我不确定我应该使用直线还是曲线,因为如果所有项目都连接起来,那么使用曲线可能会更难发现连接

我知道使用WinForms会很痛苦,而且我没有升级控件外观的灵活性。我想我应该走WPF的路,但不确定如何解决这个问题。如果您能举个例子,我们将不胜感激


我打算创造什么。当然,一旦控件开始工作,我需要努力使它看起来更好。

同意HighCore的观点-看看WPF中的画布。您也可以在WinForms中使用GDI+执行此操作。基本上,您需要定义端点——可以通过单击,也可以通过listItem的边框。然后,存储链接它们的行集合。当listItems更改位置时,需要调整画布上的线条

感谢@HighCore的可能重复,这个例子真的很有用!我在浏览你的答案时偶然发现了另一个控件,但是源代码链接不起作用。我想我也可以从这个样本中受益。你能编辑这个答案或者给我发一个链接到这个样本吗?谢谢,洛蒂刚刚编辑了答案并将源代码上传到GitHub。享受;)非常感谢@HighCore!