C# 使用c开发这样的winform#

C# 使用c开发这样的winform#,c#,winforms,image,C#,Winforms,Image,图1,我有一张或几张图片和一些mp3文件。我想开发一个winform并将图片加载到winform中,然后,当鼠标移到图片的某些区域时,该区域会发生变化,并在鼠标单击时播放mp3文件 问题:我如何知道鼠标在指定区域上?然后更改该区域的颜色?如何知道鼠标在哪些区域单击?以及播放mp3文件 这些区域可能是圆形、椭圆形、矩形。。。 也许这就是热点形象问题 有人帮我吗?谢谢 使用和事件。然后只需调用代码修改椭圆的不透明度/颜色/任何内容,然后播放mp3,这是一个单独的问题。一种方法是创建一个相同大小的隐藏

图1,我有一张或几张图片和一些mp3文件。我想开发一个winform并将图片加载到winform中,然后,当鼠标移到图片的某些区域时,该区域会发生变化,并在鼠标单击时播放mp3文件

问题:我如何知道鼠标在指定区域上?然后更改该区域的颜色?如何知道鼠标在哪些区域单击?以及播放mp3文件

这些区域可能是圆形、椭圆形、矩形。。。 也许这就是热点形象问题

有人帮我吗?谢谢


使用和事件。然后只需调用代码修改椭圆的不透明度/颜色/任何内容,然后播放mp3,这是一个单独的问题。

一种方法是创建一个相同大小的隐藏位图,背景为白色或黑色,并用不同的颜色对每个气泡进行着色

然后你可以这样做:

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
  int foundColor = _Mask.GetPixel(e.X, e.Y).ToArgb();

  if (foundColor == Color.Red.ToArgb())
    // do something with this bubble
  else if (foundColor == Color.Blue.ToArgb())
    // do something with this bubble
  else
    // do nothing
}

我建议使用WPF而不是WinForms。在Winforms中,我们有像OnMouseDown/OnMouseUp/OnMouseMove这样的鼠标事件,您可以使用它们并完成相同的操作。