Практическое руководство. Изменение размеров холста с помощью бегунка
В этом примере показано, как использовать Thumb изменение размера элемента управления Canvas элемента управления.
Пример
Thumb Элемент управления предоставляет функциональные возможности перетаскивания, который может использоваться для перемещения или изменения размеров элементов управления, отслеживая DragStarted, DragDelta и DragCompleted события Thumb.
Пользователь начинает операцию перетаскивания, нажав клавишу левой кнопки мыши при наведении указателя мыши на Thumb элемента управления. Операция перетаскивания продолжается до тех пор, пока остается нажатой левую кнопку мыши. Во время операции перетаскивания DragDelta может встречаться несколько раз. Каждый раз, оно возникает, DragDeltaEventArgs класс обеспечивает изменение положения в соответствии с изменением положения курсора мыши. Когда пользователь отпускает левую кнопку мыши, операция перетаскивания завершена. Операция перетаскивания предоставляет только новые координаты; его положение не автоматически Thumb.
В следующем примере показан Thumb управления, являющийся дочерним элементом элемента Canvas элемента управления. Обработчик событий для его DragDelta событие предоставляет логику перемещения Thumb и измените размер Canvas. Обработчики событий для DragStarted и DragCompleted событий изменения цвета Thumb во время операции перетаскивания. В следующем примере определяется Thumb.
<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue"
Width="20" Height="20" DragDelta="onDragDelta"
DragStarted="onDragStarted" DragCompleted="onDragCompleted"
/>
В следующем примере показан DragDelta обработчик событий, который перемещает Thumb и изменяет размер Canvas в ответ на движения мыши.
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();
}
}
В следующем примере показан DragStarted обработчик событий.
void onDragStarted(object sender, DragStartedEventArgs e)
{
myThumb.Background = Brushes.Orange;
}
В следующем примере показан DragCompleted обработчик событий.
void onDragCompleted(object sender, DragCompletedEventArgs e)
{
myThumb.Background = Brushes.Blue;
}
Полный пример см. в разделе Пример перетаскивания бегунка.