【问题标题】:Grid Control网格控制
【发布时间】:2010-10-19 03:59:42
【问题描述】:
我的任务是创建一个控件,该控件具有允许拖放图像的热点。这些位置将根据拖动到控件上的内容而改变。将图像放到控件上后,它需要能够移动到新位置(通过拖放或使用箭头键)。
我能想到的最接近此功能的示例是 Microsoft Windows 桌面。当你在它周围拖动一个图标时,你可以将它放在任何地方(捕捉到最近的允许热点)我正在使用 .net 3.5 和 C#。
我正在寻找开始制作此控件原型的想法。
最好的继承自 Winform 控件是什么,或者从头开始自定义控件是唯一的出路?
【问题讨论】:
标签:
c#
.net
.net-3.5
controls
【解决方案1】:
假设尚不存在第三方解决方案,我很确定您必须实现自己的控制。至于您的逻辑应该如何进行,您需要实现的只是碰撞检测。我无法具体告诉您这将如何在您的应用程序中工作,因为这将取决于几个变量(热点是否固定大小?它们是否以对称网格模式布置等)。如果它们都以对称模式布置,您应该能够使用数学函数将给定的 X、Y 对转换为特定的热点。如果它们具有不同的大小和布局,那么您可能必须搜索您的热点矩形集合(或至少该集合的一个子集)才能找到包含您的点的矩形。