如果我使用两个事件处理程序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));
}
一切都在这里工作很好,但问题是,如果他们同时举行,它不执行以下的处理程序PreviewMouseMove
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));
}
}
}
移动鼠标有没有办法解决?为什么在我释放鼠标左键之前,我不会阻止其他事件处理程序?