Como: Determinar as coordenadas em um ImageButton controle de servidor Web
Quando os usuários clicam em um ImageButton, um parâmetro passado para o manipulador de eventos para o controle do evento Click inclui as coordenadas indicando onde o usuário clicou.Isso permite que você execute tarefas diferentes com base em onde o usuário clicou.
Observação: |
---|
Se você desejar definir áreas específicas de uma imagem como regiões que os usuários podem clicar, você também pode usar o controle ImageMap. |
Informações de coordenadas são enviadas como parte do objeto de evento argumento para o controle ImageButton de evento Click.
Para determinar as coordenadas onde um usuário clica
Crie um manipulador de eventos para o evento Click do controle ImageButton.O objeto de evento argumento para o método deve ser do tipo ImageClickEventArgs.
No manipulador de eventos Click, obtenha as propriedades X e Y do objeto argumento ImageClickEventArgs.
As coordenadas x e y são expressas em pixels, onde o canto superior esquerdo da imagem é (0,0).
O exemplo a seguir mostra como você pode determinar onde o usuário clicou num gráfico que é 100 por 100 pixels.O código obtém as coordenadas x e y onde o usuário clicou.Ele então compara-as com valores predeterminados para ver se o usuário clicou em um determinado quadrante.Os resultados são exibidos em um controle Label.
Protected Sub ImageButton1_Click(ByVal sender As System.Object, _ ByVal e As System.Web.UI.ImageClickEventArgs) _ Handles ImageButton1.Click Dim msg as String = "" Dim x As Integer = e.X Dim y As Integer = e.Y ' The button graphic is assumed to be 100x100 pixels. ' This checks coordinates against predetermined values that ' make up quadrants of the picture. If x >= 50 And y >= 50 Then msg = "Southeast" ElseIf x >= 50 And y < 50 Then msg = "Northeast" ElseIf x < 50 And y >= 50 Then msg = "Southwest" ElseIf x < 50 And y < 50 Then msg = "Northwest" End If Label1.Text = msg End Sub
protected void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e) { string msg = ""; int x = e.X; int y = e.Y; // The button graphic is assumed to be 100x100 pixels. // This checks coordinates against predetermined values that // make up quadrants of the picture. if(x >= 50 && y >= 50) { msg = "Southeast"; } else if(x >=50 && y < 50) { msg = "Northeast"; } else if(x < 50 && y >= 50) { msg = "Southwest"; } else if(x < 50 && y < 50) { msg = "Northwest"; } Label1.Text = msg; }