Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a példa bemutatja, hogyan lehet egy Thumb vezérlőt egy másik Canvas vezérlő átméretezésére használni.
példa
A Thumb vezérlő húzási funkciókat biztosít, amelyekkel áthelyezheti vagy átméretezheti a vezérlőket a DragStarted, DragDelta és DragCompleted események Thumb figyelésével.
Amikor az egérmutató a Thumb vezérlőn megáll, a felhasználó a bal egérgomb lenyomásával elindít egy húzási műveletet. Az húzási művelet addig folytatódik, amíg a bal egérgomb lenyomva marad. A húzási művelet során a DragDelta művelet többször is előfordulhat. Minden alkalommal, amikor bekövetkezik, az DragDeltaEventArgs osztály megadja az egér helyzetének változásának megfelelő pozícióváltozást. Amikor a felhasználó felengedi a bal egérgombot, az húzási művelet befejeződött. A húzási művelet csak új koordinátákat biztosít; nem helyezi automatikusan át a Thumb.
Az alábbi példa egy Thumb vezérlőelemet mutat be, amely egy Canvas vezérlőelem gyermekeleme. Az DragDelta eseménykezelője biztosítja a logikát Thumb áthelyezéséhez és Canvas átméretezéséhez. Az DragStarted és DragCompleted események eseménykezelői megváltoztatják a Thumb színét a húzási művelet során. Az alábbi példa határozza meg a Thumb.
<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue"
Width="20" Height="20" DragDelta="onDragDelta"
DragStarted="onDragStarted" DragCompleted="onDragCompleted"
/>
Az alábbi példa azt az DragDelta eseménykezelőt mutatja be, amely áthelyezi Thumb és átméretezi az Canvas egérmozgatásra válaszul.
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();
}
}
Az alábbi példa az eseménykezelőt DragStarted mutatja be.
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
Az alábbi példa az eseménykezelőt DragCompleted mutatja be.
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
A teljes mintához tekintse meg a hüvelykujj húzási funkciómintáját.
Lásd még
.NET Desktop feedback