2012-06-13 10 views
5

(prima la questione poi vi spiego)senza mouse Drag and Drop - cambiare come l'evento risuscitano (sollevare goccia/evento di trascinamento programatically)

Come dire l'applicazione di cadere un oggetto/alzare il calo evento programmaticamente (non sto usando il mouse)?

Attualmente sto sviluppando per MSKinect e voglio implementare un Drag and Drop davvero vicino al trascinamento della selezione nativo (vedere msdn doc).

Ho già implementato un drag and drop utilizzando una tela e utilizzando l'evento generato dai cursori Kinect per "trascinare" le cose intorno. ma sono più interessato a trasferire i dati usando il drag and drop.

So che in genere l'evento di rilascio viene avviato quando viene rilasciato il pulsante del mouse, desidero eseguire il rilascio di draggableElement quando si verifica un determinato gesto.

Ulteriori informazioni: Sto l'attuazione di un manager in base alla LesterLobo's work

risposta

0

È possibile simulare a livello globale i movimenti del mouse e click utilizzando la funzione SendInput delle API Win32. Puoi trovare le istruzioni su come chiamare la funzione usando C# here.

La funzione SendInput è il più vicino possibile all'uso effettivo del mouse. Sfortunatamente, non è molto comodo lavorare con. Dovrai simulare premendo il tasto sinistro del mouse, spostando il mouse e rilasciando il pulsante sinistro del mouse.

Si prega di notare che questo approccio è inteso per il trascinamento di roba tra le applicazioni, nonché all'interno dell'applicazione. Se vuoi semplicemente trascinare tutto all'interno dell'applicazione, è molto probabile che sia una soluzione più semplice.

+0

Penso che bypassare il mouse usando SendInput potrebbe funzionare, tuttavia preferirei solo generare un evento nel codice sottostante (allo stesso modo in cui potremmo generare un evento Click). Non voglio usare il mouse (o il suo input) perché ho due cursori con Kinect per due utenti diversi (ad esempio 4 cursori). Non voglio alcuna concorrenza su questa funzione: c'è probabilmente 4 trascinamento alla volta. – astreal