我正在编写数据库图表工具(在VS 2010,C#4.0中),我遇到了问题。我编写了TableEntity自定义控件,现在我需要编写Relationship控件。但我不确定最好的方法。 据我所知,到目前为止,我只能在当前控件的ClientRectangle内绘制。因此,如果我要编写一个连接两个表的关系控件,则控件必须足够大以包含两个端点,否则需要多个物理控件来表示一个逻辑控件。
如果控件很大,它们会在几个地方重叠,我需要一个精心设计的HitTest来确定用户点击的内容(以及一个消息传递系统,用于将点击传递到这个控件下面的控件,以便他们使用HitTest )。
如果我使用多个物理控件,如何将它们表示为单个逻辑控件?在Table实体移动时重塑它们会变得太慢吗?
是否有一种我没想过的“正确”方式?
提前感谢您的帮助。