Comment : faire en sorte qu'un objet suive le pointeur de la souris

Cet exemple montre comment modifier les dimensions d’un objet lorsque le pointeur de la souris se déplace sur l’écran.

L’exemple inclut un fichier XAML (Extensible Application Markup Language) qui crée l’interface utilisateur et un fichier code-behind qui crée le gestionnaire d’événements.

Exemple

Le code XAML suivant crée l’interface utilisateur, qui se compose d’un Ellipse intérieur d’un StackPanel, et attache le gestionnaire d’événements pour l’événement MouseMove .

<Window x:Class="WCSamples.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://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>

Le code suivant crée le gestionnaire d’événements MouseMove . Lorsque le pointeur de la souris se déplace, la hauteur et la largeur du pointeur de la Ellipse souris sont augmentées et réduites.

// 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;
}
' 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

Voir aussi