Vorgehensweise: Ändern der Größe eines Zeichenbereichs mithilfe eines Daumens
In diesem Beispiel wird gezeigt, wie Sie ein Thumb-Steuerelement verwenden, um die Größe eines Canvas-Steuerelements zu ändern.
Beispiel
Das Thumb-Steuerelement bietet Ziehfunktionen, die zum Verschieben oder Ändern der Größe von Steuerelementen verwendet werden können, indem die DragStarted, DragDelta und DragCompleted Ereignisse der Thumbüberwacht werden.
Der Benutzer beginnt einen Ziehvorgang, indem er die linke Maustaste drückt, wenn der Mauszeiger auf dem Thumb-Steuerelement angehalten wird. Der Ziehvorgang wird fortgesetzt, solange die linke Maustaste gedrückt bleibt. Während des Ziehvorgangs kann die DragDelta mehrmals auftreten. jedes mal, wenn sie auftritt, stellt die DragDeltaEventArgs-Klasse die Positionsänderung bereit, die der Änderung der Mausposition entspricht. Wenn der Benutzer die linke Maustaste loslässt, wird der Ziehvorgang abgeschlossen. Der Ziehvorgang stellt nur neue Koordinaten bereit; sie positioniert die Thumbnicht automatisch neu.
Das folgende Beispiel zeigt ein Thumb-Steuerelement, das das untergeordnete Element eines Canvas-Steuerelements ist. Der Ereignishandler für das DragDelta-Ereignis stellt die Logik zum Verschieben des Thumb bereit und ändert die Größe der Canvas. Die Ereignishandler für die DragStarted und DragCompleted Ereignis ändern die Farbe der Thumb während eines Ziehvorgangs. Im folgenden Beispiel wird die Thumbdefiniert.
<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue"
Width="20" Height="20" DragDelta="onDragDelta"
DragStarted="onDragStarted" DragCompleted="onDragCompleted"
/>
Das folgende Beispiel zeigt den Ereignishandler DragDelta, der Thumb verschiebt und die Größe von Canvas bei Mausbewegungen ändert.
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();
}
}
Das folgende Beispiel zeigt den DragStarted Ereignishandler.
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
Das folgende Beispiel zeigt den DragCompleted Ereignishandler.
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
Das vollständige Beispiel finden Sie im Beispiel für die Drag-Funktionalität mit Daumen unter .
Siehe auch
.NET Desktop feedback