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)); }
public bool AdicionarElementoQuadro(DragDropElement elementoDropado) { var operacao = elementoDropado.Child as OperacaoArrastavel; var equacaoAtual = this.ObterViewModel().EquacaoEmFaseDeResolucao; if (FoiExecutadoDrop(elementoDropado, AreaDropEsquerda)) { AplicarOperacaoEReavaliarObjetivo(operacao, Lado.Esquerdo, equacaoAtual); return(true); } // if (FoiExecutadoDrop(elementoDropado, AreaDropDireita)) // { // AplicarOperacaoEReavaliarObjetivo(operacao, Lado.Direito, equacaoAtual); // return true; // } return(false); }
public bool AdicionarElementoQuadro(DragDropElement elementoDropado) { var peso = elementoDropado.Child as TrianguloArrastavel; var equacaoEmConstrucao = this.ObterViewModel().EquacaoEmConstrucao; if (FoiExecutadoDrop(elementoDropado, AreaDropEsquerda)) { AdicionarPesoEReavaliarObjetivo(peso, Lado.Esquerdo, equacaoEmConstrucao); return(true); } /* * if (FoiExecutadoDrop(elementoDropado, AreaDropDireita)) * { * AdicionarPesoEReavaliarObjetivo(peso, Lado.Direito, equacaoEmConstrucao); * return true; * } */ return(false); }