Nasıl yapılır: Parmak Kullanarak Tuvali Yeniden Boyutlandırma

Bu örnek, bir denetimin nasıl Thumb yeniden boyutlandırılması için bir denetimin nasıl kullanılacağını gösterir Canvas .

Örnek

ThumbDenetim, DragStartedDragDelta ve olaylarını izleyerek denetimleri taşımak veya yeniden boyutlandırmak için kullanılabilecek sürükle işlevlerini sağlar DragCompletedThumb .

Kullanıcı, denetimde fare işaretçisi duraklatıldığında sol fare düğmesine basarak bir sürükleme işlemi başlatır Thumb . Sol fare düğmesi basılı kaldığı sürece sürükleme işlemi devam eder. Sürükleme işlemi sırasında birden DragDelta çok kez gerçekleşebilir. Her gerçekleştiğinde DragDeltaEventArgs sınıfı, fare konumundaki değişikliğe karşılık gelen konumdaki değişikliği sağlar. Kullanıcı sol fare düğmesini bıraktığında, sürükleme işlemi tamamlanır. Sürükleme işlemi yalnızca yeni koordinatlar sağlar; otomatik olarak yeniden konumlandırır Thumb .

Aşağıdaki örnek, Thumb bir denetimin alt öğesi olan bir denetimi gösterir Canvas . Olayının olay işleyicisi, DragDelta taşıma Thumb ve yeniden boyutlandırma mantığını sağlar Canvas . Ve olayı için olay işleyicileri DragStartedDragCompleted , Thumb bir sürükleme işlemi sırasında rengini değiştirir. Aşağıdaki örnek öğesini tanımlar Thumb .

<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue" 
      Width="20" Height="20" DragDelta="onDragDelta" 
      DragStarted="onDragStarted" DragCompleted="onDragCompleted"
      />

Aşağıdaki örnek DragDelta , Thumb ' a taşınan ve Canvas yanıt olarak bir fare hareketine yeniden boyutlandıran olay işleyicisini gösterir.

void onDragDelta(object sender, DragDeltaEventArgs e)
{
    //Move the Thumb to the mouse position during the drag operation
    double yadjust = myCanvasStretch.Height + e.VerticalChange;
    double xadjust = myCanvasStretch.Width + e.HorizontalChange;
    if ((xadjust >= 0) && (yadjust >= 0))
    {
        myCanvasStretch.Width = xadjust;
        myCanvasStretch.Height = yadjust;
        Canvas.SetLeft(myThumb, Canvas.GetLeft(myThumb) +
                                e.HorizontalChange);
        Canvas.SetTop(myThumb, Canvas.GetTop(myThumb) +
                                e.VerticalChange);
        changes.Text = "Size: " +
                        myCanvasStretch.Width.ToString() +
                         ", " +
                        myCanvasStretch.Height.ToString();
    }
}

Aşağıdaki örnekte DragStarted olay işleyicisi gösterilmektedir.

void onDragStarted(object sender, DragStartedEventArgs e)
{
    myThumb.Background = Brushes.Orange;
}
Private Sub onDragStarted(ByVal sender As Object, ByVal e As DragStartedEventArgs)
    myThumb.Background = Brushes.Orange
End Sub

Aşağıdaki örnekte DragCompleted olay işleyicisi gösterilmektedir.

void onDragCompleted(object sender, DragCompletedEventArgs e)
{
    myThumb.Background = Brushes.Blue;
}
Private Sub onDragCompleted(ByVal sender As Object, _
                  ByVal e As DragCompletedEventArgs)
    myThumb.Background = Brushes.Blue
End Sub

Tüm örnek için bkz. Thumb sürükle Işlevi örneği.

Ayrıca bkz.