private bool FoiExecutadoDrop(DragDropElement elemento, WrapPanel areaDrop) { var elementoCentroX = elemento.ActualWidth / 2; var elementoCentroY = elemento.ActualHeight / 2; var pontoOndeFoiSolto = elemento.TransformToAncestor(CanvasBalanca).Transform(new Point(0, 0)); // centraliza ponto de detecção para centro do elemento pontoOndeFoiSolto.X += elementoCentroX; pontoOndeFoiSolto.Y += elementoCentroY; var posicaoAreaDrop = areaDrop.TransformToAncestor(CanvasBalanca).Transform(new Point(0, 0)); return(pontoOndeFoiSolto.X > posicaoAreaDrop.X && pontoOndeFoiSolto.X < (posicaoAreaDrop.X + areaDrop.ActualWidth) && pontoOndeFoiSolto.Y > posicaoAreaDrop.Y && pontoOndeFoiSolto.Y < (posicaoAreaDrop.Y + areaDrop.ActualHeight)); }