HotSpots en ImageMap …áreas circulares en una imagen que causan postbak al dar clic sobre ellas.
El control ImageMap es usado para desplegar una imagen clickeable en una página web que puede ser usada para hacer un PostBack al WebServer, o para abrir otra página siguiendo una URL.
A diferencia del control ImageButton, este permite definir regiones “hot-spots” de formas circulares CircleHotSpot, Rectangulares RectangleHotSpot, y Poligonales PolygonHotSpot que causan PostBack cuando el usuario da clic en ellas, mientras que en un ImageButton dando clic en cualquier parte de la imagen se hace un PostBack.
El primer HotSpot definido toma precedencia sobre los demás, por ejemplo si tenemos dos CircleHotSpot el primero con un radio menor al segundo y ambos con el mismo centro.
El círculo menor quedaría dentro del segundo pero su área clickeable siempre estaría activa y limitada por el área mayor.
Para el siguiente ejemplo, primero Agregaremos un ImageMap y un Label a nuestra página:
Como serán utilizadas varias zonas circulares o CircleHotSpot ara ello he creado un procedimiento que recibe las coordenadas en (x,y) del centro, el radio y la descripción en este caso el valor que será devuelto al hacer el PostBack.
public void zona_circular(int x, int y,int radio,string descripcion)
{
CircleHotSpot chs;
chs = new CircleHotSpot();
chs.X = x;
chs.Y = y;
chs.Radius = radio;
chs.PostBackValue = descripcion;
ImageMap1.HotSpots.Add(chs);
}
En el evento Load de la página, establecemos la imagen que será mostrada en el ImageMap1, el AlternateText que será el comentario mostrado cuando se posicione el Mouse sobre el control y el HotSpotMode que da el comportamiento para los objetos HotSpot de un ImageMap cuando se hace clic en ellos, en este caso es PostBack pero puede ser Inactive (sin comportamiento), Navigate (se desplaza a una URL).
ImageMap1.ImageUrl = "~/images/homer.jpg";
ImageMap1.AlternateText = "This is a picture of Homero";
ImageMap1.HotSpotMode = HotSpotMode.PostBack;
Después llamaremos a la función zona_circular(X,Y,Radio,Descripción); cuantas veces sea necesario de acuerdo a las zonas que deseemos definir:
zona_circular(124, 151, 6, "Left Eye Center");
zona_circular(133, 145, 35, "Left Eye");
zona_circular(193, 145, 6, "Right Eye center");
zona_circular(183, 173, 20, "Nose");
zona_circular(155, 233, 50, "Mouth");
Finalmente en el evento clic del ImageMap agregamos la siguiente línea:
Label1.Text = "You clicked the " + e.PostBackValue;
Con esta línea traemos el valor asociado al funcionamiento del Hotspot.
De esta forma cada vez que demos clic en un área hotspot como resultado tendremos en la etiqueta o label el valor del PostBack.
En las imagenes puede apreciarse el mensaje del PostBackValue en el label después de haber dado clic en los HotSpots del ImageMap.


evia de un formulario antes de imprimirlo.




