namespace Rodrigo.Maps
{
public partial class Mexico : UserControl
{
Brush original;
public Mexico()
{
InitializeComponent();
original = (Brush)this.Resources["brochaVerde"];
foreach (UIElement estado in this.mexico.Children)
{
if (estado is Canvas)
{
RegisterEvents(estado as Canvas);
}
}
//Español: También podemos hacer esto:
//English: We could do this as well:
//RegisterEvents(Aguascalientes);
//RegisterEvents(BC);
//RegisterEvents(NuevoLeon);
//...
}
/// <summary>
/// Español: Registra los manejadores de eventos para el estado especificado en el parámetro
/// English: Register the event handlers for the state specified in the parameter
/// </summary>
/// <param name="estado"></param>
void RegisterEvents(Canvas estado)
{
estado.MouseEnter += new MouseEventHandler(this.Estado_MouseEnter);
estado.MouseLeave += new MouseEventHandler(this.Estado_MouseLeave);
estado.MouseLeftButtonUp += new MouseButtonEventHandler(this.Estado_MouseButtonUp);
}
/// <summary>
/// Español: Muestra el nombre del estado en una alerta al hacer clic
/// English: Displays the state name when clicked
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Estado_MouseButtonUp(object sender, MouseButtonEventArgs e)
{
HtmlPage.Window.Alert(((Canvas)sender).Name);
}
/// <summary>
/// Español: Cambia el color del estado que está recibiendo el foco
/// English: Changes the state color when the mouse cursor hovers
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Estado_MouseEnter(object sender, MouseEventArgs e)
{
((Path)((Canvas)sender).Children[0]).Fill = new SolidColorBrush(Colors.Magenta);
}
/// <summary>
/// Español: Regresa el color original del estado al perder el foco
/// English: Rolls back to the original color when the mouse cursor leaves
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Estado_MouseLeave(object sender, MouseEventArgs e)
{
((Path)((Canvas)sender).Children[0]).Fill = original;
}
}
}