网格控制

时间:2009-04-13 16:10:04

标签: c# .net .net-3.5 controls

我的任务是创建一个控件,它具有允许拖放图像的热点。这些位置将根据拖动到控件上的内容而改变。将图像放在控件上后,需要能够移动到新位置(通过拖放或使用箭头键)。

我能想到的最接近这个功能的例子是Microsoft Windows桌面。当你拖动它周围的图标时,你可以将它放到任何地方(捕捉到最近的允许热点)我正在使用.net 3.5使用C#。

我正在寻找开始对这种控制进行原型设计的想法。

什么是最好的Winform控件继承,或者从头开始是一个自定义控件的唯一途径?

1 个答案:

答案 0 :(得分:1)

我很确定你必须实现自己的控制,假设第三方解决方案尚不存在。至于你的逻辑应该如何,你需要实现的只是碰撞检测。我不能具体告诉你这在你的应用程序中是如何工作的,因为这将取决于几个变量(热点是固定大小的吗?它们是以对称网格模式布局的,等等)。如果它们都以对称模式布局,您应该能够使用数学函数将给定的X,Y对转换为特定的热点。如果它们的大小和布局各不相同,那么您可能需要搜索热点矩形集合(或至少是该集合的一个子集)来查找包含您的点的矩形。