Подпишись на наш Twitter

Быть в курсе появления новых статей!

Вы можете изменять курсор мыши в процессе операции drag-and-drop обрабатывая событие GiveFeedback для drag источника. Свойство GiveFeedbackEventArgs.Effects показывает текущее действие в зависимости от позиции мыши. Вы можете установить курсор мыши, основываясь на текущем действии.

В примере ниже, мы меняем курсор мыши с "hand" для типа действия Copy, которые показывает разрешение для бросания данных.


    
private void Label_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DataObject data = new DataObject(DataFormats.Text, ((Label)e.Source).Content);

    DragDrop.DoDragDrop((DependencyObject)e.Source, data, DragDropEffects.Copy);
}

private void Label_Drop(object sender, DragEventArgs e)
{
    ((Label)e.Source).Content = (string)e.Data.GetData(DataFormats.Text);
}

private void Label_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    if (e.Effects == DragDropEffects.Copy)
    {
        e.UseDefaultCursors = false;
        Mouse.SetCursor(Cursors.Hand);
    }
    else
        e.UseDefaultCursors = true;

    e.Handled = true;
}

Оригинал: #711 – Changing the Mouse Cursor While Dragging




Дата публикации: 13.12.2012 19:55

Ярлыки: Cursor, Drag and Drop, Events, WPF