Sdílet prostřednictvím


Postupy: Nastavení objektu podle ukazatele myši

Tento příklad ukazuje, jak změnit rozměry objektu při pohybu ukazatele myši na obrazovce.

Příklad obsahuje soubor XAML (Extensible Application Markup Language), který vytvoří uživatelské rozhraní (UI) a soubor kódu, který vytvoří obslužnou rutinu události.

Příklad

Následující XAML vytvoří uživatelské rozhraní, které se skládá z Ellipse uvnitř StackPanela připojí obslužnou rutinu pro událost 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>

Následující kód v pozadí vytvoří obslužnou rutinu události MouseMove. Když se ukazatel myši přesune, výška a šířka Ellipse se zvětší a zmenší.

// 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

Viz také