Перетаскивание в Treeview

internal элементы видны всему коду в сборке, в которой они объявлены.
(И для других сборок, на которые ссылается атрибут [InternalsVisibleTo] )

private, элементы видны только декларирующему классу. (включая вложенные классы)

Внешний (не вложенный) класс не может быть объявлен private, так как нет содержащей области действия, чтобы сделать его закрытым.

Чтобы ответить на вопрос, который вы забыли задать, protected члены похожи на private членов, но также видны во всех классах, которые наследуют декларирующий тип. (Но только для выражения, по крайней мере, типа текущего класса)

17
задан Pang 10 August 2015 в 04:38
поделиться

1 ответ

Эта статья очень полезна. Drag drop wpf

Этот код может быть вам полезен.

Point _startPoint;
bool _IsDragging = false;

void TemplateTreeView_PreviewMouseMove(object sender, MouseEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed || 
        e.RightButton == MouseButtonState.Pressed && !_IsDragging)
    {
        Point position = e.GetPosition(null); 
        if (Math.Abs(position.X - _startPoint.X) > 
                SystemParameters.MinimumHorizontalDragDistance ||
            Math.Abs(position.Y - _startPoint.Y) > 
                SystemParameters.MinimumVerticalDragDistance)
        {
            StartDrag(e);
        }
    }           
}

void TemplateTreeView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    _startPoint = e.GetPosition(null);
}

private void StartDrag(MouseEventArgs e)
{
    _IsDragging = true;
    object temp = this.TemplateTreeView.SelectedItem;
    DataObject data = null;

    data = new DataObject("inadt", temp);

    if (data != null)
    {
        DragDropEffects dde = DragDropEffects.Move;
        if (e.RightButton == MouseButtonState.Pressed)
        {
            dde = DragDropEffects.All;
        }
        DragDropEffects de = DragDrop.DoDragDrop(this.TemplateTreeView, data, dde);
    }
    _IsDragging = false;
}
50
ответ дан 30 November 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: