代码之家  ›  专栏  ›  技术社区  ›  bill

网格控制

  •  2
  • bill  · 技术社区  · 16 年前

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

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

    我正在寻找开始原型这个控制的想法。

    从中继承的最佳winform控件是什么,或者从头开始自定义控件是唯一的方法?

    1 回复  |  直到 13 年前
        1
  •  1
  •   Adam Robinson    16 年前

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