2010-06-14 5 views
27

Suivant mon scénario.Faites glisser et déposez sur Desktop/Explorer

J'ai une application qui charge une structure de fichiers (dossiers, fichiers) à partir d'une base de données dans un ListView WPF. Maintenant, je voudrais prendre un fichier de cette ListView, faites-le glisser sur mon bureau (ou une fenêtre ouverte de l'explorateur) et déposez-le là. Drag and Drop de base, rien d'extraordinaire. Cela ressemble à une fonction "standard" pour une application Windows - mais google n'aidera pas.

Alors, comment puis-je y parvenir? Interops?

Merci

Modifier: Merci pour la solution, je devais encore faire quelques recherches sur Google. Here's my complete solution.

+1

il serait apprécié si vous avez posté votre solution complète comme une réponse ici. –

+0

J'ai essayé votre exemple mais il ne compilera pas, DragDrop est inconnu. Ai-je besoin d'ajouter une référence ou quelque chose? – GuidoG

Répondre

27

DragDrop.DoDragDrop peut le faire aussi longtemps que vous le passez un DataObject approprié.

Copiez d'abord les fichiers quelque part. Vous pouvez utiliser System.IO.Path.GetTempPath() si vous n'avez rien de mieux.

Suivant créer un tableau de chaînes contenant les chemins d'accès complets aux fichiers et procédez comme suit:

string[] paths = ...; 
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths), 
        DragDropEffects.Copy); 

Il est en fait possible de le faire sans pré-copie des fichiers, mais qui pénètre dans certaines interactions IDataObject compliquées, donc, à moins que vos fichiers ne soient potentiellement très volumineux et ne se trouvent déjà dans le système de fichiers, j'essaierai d'abord cette méthode.

+0

Merci, je vais essayer tout de suite. –

+0

A travaillé, merci. –

+3

Je sais que c'est un très vieux fil, mais pourriez-vous développer votre déclaration sur "à moins que vos fichiers sont potentiellement très gros" -partie? J'essaie de faire exactement ça. Avoir une fonctionnalité DragDrop, qui télécharge le fichier en le déposant quelque part. – Falgantil

Questions connexes