두 개의 이벤트 처리기를 사용하는 경우 PreviewMouseLeftButtonDown 및 PreviewMouseMove. 내가 겪고있는 문제는 PreviewMouseLEftButtonDown이 트리거 될 때 모든 것이 잘 작동하지만 드래그 앤 드롭 작업이므로 왼쪽 버튼이 그대로 유지된다는 것입니다. 그들은 아래 왼쪽 버튼을 누르고있는 동안 그래서, PreviewMouseMove 이벤트 핸들러가 처리해야하지만, 그들이 여기WPF 드래그 앤 드롭 - PreviewMouseMove + PreviewMouseLeftButtonDown 캔트가 함께 작동합니까?
먼저 무엇을 호출되고있는 마우스 왼쪽 버튼을 해제 할 때까지 호출되지 않는
private void FieldItemGrid_PreviewMouseLeftButtonDown(object sender, MouseEventArgs e)
{
down = e.GetPosition(this);
Grid fieldItemGrid = (Grid)sender;
fieldItemGrid.Background = Brushes.White;
_isDown = true;
_startPoint = e.GetPosition(this);
_originalElement = fieldItemGrid;
this.CaptureMouse();
e.Handled = true;
_selectedElement = fieldItemGrid;
DragStarted(e.GetPosition(this));
}
모든 것은 여기에서 잘 작동하지만, 유지, 그것은
private void FieldItemGrid_PreviewMouseMove(object sender, MouseEventArgs e)
{
if (_isDown)
{
if (_selectedElement != null)
{
DragDrop.DoDragDrop(_selectedElement, _selectedElement, DragDropEffects.Move);
}
if (_isDragging)
{
DragMoved(e.GetPosition(this));
}
}
}
PreviewMouseMove
에 대해 다음 핸들러를 실행하지 않는 동안 그들이이 주위에 방법이 있나요 마우스를 이동하는 경우 문제는 무엇입니까? 그래서 왼쪽 마우스 버튼을 놓기 전에 다른 이벤트 핸들러를 치는 것을 막지는 않습니까?