是否可以从这张照片中制作9个按钮而不将它们分开。我尝试插入9个不同的图片框,但它们重叠。我还尝试设置透明背景并更改父母。有什么建议?
答案 0 :(得分:3)
正如Rodrigo Silva的评论所暗示的那样,单个PictureBox制作的“图像地图”可能是最好的方式。将整个图像放在PictureBox中。注册Click事件处理程序。在处理程序中,您可以使用MousePosition.X
和MousePosition.Y
获取鼠标坐标。
要确定点击了哪个区域,我接近它的方法是计算鼠标点击相对于图片中心的角度。然后测试点击落入的8个扇区中的哪个扇区(也许还要进行“半径”检查以确保点击不在中心区域或外边缘之外)。基本上:
double cx; // set to center X coordinate of picture
double cy; // set to center Y coordinate of picture
double x = MousePosition.X;
double y = MousePosition.Y;
double angle = Math.Atan2(y - cy, x - cx);
// convert from radians to degrees
angle *= 180 / Math.PI;
double distance = Math.Sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy));
if (distance > min_distance && distance <= max_distance)
{
if (angle >= 0 && angle < 45) { /* ... */ }
else if (angle < 90) { /* ... */ }
// etc.
}
当然,您可以使用任何其他方法来确定基于鼠标坐标点击的区域。