Aracılığıyla paylaş


Nasıl yapılır: Fare İşaretçisini Takip Eden Bir Nesne Yapma

Bu örnekte, fare işaretçisi ekranda hareket ettiğinde nesnenin boyutlarının nasıl değiştireceği gösterilmektedir.

Örnek, kullanıcı arabirimini (UI) oluşturan Genişletilebilir Uygulama Biçimlendirme Dili (XAML) dosyasını ve olay işleyicisini oluşturan arka planda kod dosyasını içerir.

Örnek

Aşağıdaki XAML, bir Ellipseiçinde bulunan bir StackPanel'dan oluşan kullanıcı arabirimini oluşturur ve MouseMove olayı için olay işleyicisini ekler.

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

Aşağıdaki kod, MouseMove olay işleyicisini oluşturur. Fare işaretçisi hareket ettiğinde, Ellipse yüksekliği ve genişliği artırılır ve azalır.

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

Ayrıca bakınız