如果我使用兩個事件處理程序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));
}
}
}
移動鼠標有沒有辦法解決?爲什麼在我釋放鼠標左鍵之前,我不會阻止其他事件處理程序?