Cómo: Crear un objeto que siga el puntero del mouse

Actualización: noviembre 2007

En este ejemplo se muestra cómo cambiar las dimensiones de un objeto cuando el puntero del mouse se mueve por la pantalla.

El ejemplo incluye un archivo Lenguaje de marcado de aplicaciones extensible (XAML) que crea la interfaz de usuario (UI) y un archivo de código subyacente que crea el controlador de eventos. Para obtener el ejemplo completo, vea Ejemplo Moving an Object with the Mouse Pointer.

Ejemplo

En el XAML siguiente se crea la interfaz de usuario, que está compuesta de un elemento Ellipse dentro de un control StackPanel, y se asocia el controlador de eventos para el evento MouseMove.

<Window x:Class="WCSamples.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="mouseMoveWithPointer"
    Height="400"
    Width="500"
    >
  <Canvas MouseMove="MouseMoveHandler"
          Background="LemonChiffon">
    <Ellipse Name="ellipse" Fill="LightBlue" 
             Width="100" Height="100"/>
  </Canvas>
</Window>

En el siguiente código subyacente se crea el controlador de eventos MouseMove. Cuando el puntero del mouse se mueve, el alto y el ancho de Ellipse aumentan y disminuyen.

' raised when the mouse pointer moves.
' Expands the dimensions of an Ellipse when the mouse moves.
Private Sub OnMouseMoveHandler(ByVal sender As Object, ByVal e As MouseEventArgs)

    'Get the x and y coordinates of the mouse pointer.
    Dim position As System.Windows.Point
    position = e.GetPosition(Me)
    Dim pX As Double
    pX = position.X
    Dim pY As Double
    pY = position.Y

    'Set the Height and Width of the Ellipse to the mouse coordinates.
    ellipse1.Height = pY
    ellipse1.Width = pX
End Sub
// raised when the mouse pointer moves.
// Expands the dimensions of an Ellipse when the mouse moves.
private void MouseMoveHandler(object sender, MouseEventArgs e)
{
    // Get the x and y coordinates of the mouse pointer.
    System.Windows.Point position = e.GetPosition(this);
    double pX = position.X;
    double pY = position.Y;

    // Sets the Height/Width of the circle to the mouse coordinates.
    ellipse.Width = pX;
    ellipse.Height = pY;
}

Vea también

Tareas

Ejemplo Moving an Object with the Mouse Pointer

Conceptos

Información general sobre acciones del usuario