コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }