/// <summary> /// Wird aufgerufen, wenn überprüft werden soll, ob sich unter der Mitte des Zentrums oder dem angegeben TouchPoint ein IDragContainer befindet. /// Dies führt noch keine endgültigen Operationen aus, aber teilt dem IDragContainer mit, dass sich nun ein Objekt über diesem befindet. /// </summary> /// <param name="pt">Hier wird der aktuelle Berührungspunkt übergeben, dies sollte auch bei Modus OBJCENTER passieren.</param> /// <returns>Den obersten gefundenen IDropContainer oder NULL</returns> public IDropContainer TestDrop(TouchPoint pt) { IDropContainer dc = ContainerAt(pt); if (dc != null) { if (dc != _container) { //Falls wir vorher ein anderen IDragContainer zwischengespeichert hatten, wird //diesem nun mitgeteilt, das wir ihn verlassen haben if (_container != null) { _container.NotifyDragExit(_draggedObject, pt); } //Benachrichtige neuen Container das wir uns nun über diesem befinden dc.NotifyDragEnter(_draggedObject, pt); //Zwischenspeichern des gefundenen Containers _container = dc; } } else { if (_container != null) { _container.NotifyDragExit(_draggedObject, pt); _container = null; } } return(dc); }
/// <summary> /// Führt die mit dem Drag-Drop tatsächlich verbundene Aktion durch. /// Bei einer Mülleimerfunktion würde zum Beispiel das Element gelöscht. /// </summary> /// <param name="pt">Hier wird der aktuelle Berührungspunkt übergeben, dies sollte auch bei Modus OBJCENTER passieren.</param> /// <returns>Den obersten gefundenen IDropContainer oder NULL</returns> public IDropContainer DoDrop(TouchPoint pt) { IDropContainer dc = ContainerAt(pt); if (dc != null) { dc.NotifyDragDrop(_draggedObject, pt); } return(dc); }