Est-il possible d'avoir une fenêtre/un élément WPF détectant le drag'n'dropping d'un fichier depuis Windows Explorer en C# .Net 3.5? J'ai trouvé des solutions pour WinForms, mais aucune pour WPF.Détecter un fichier Drag'n'Drop dans WPF?
Répondre
Malheureusement, TextBox, RichTextBox et téléspectateurs FlowDocument marquent toujours des événements glisser-déposer comme manipulé, ce qui les empêche de bouillonner jusqu'à vos gestionnaires. Vous pouvez restaurer les événements glisser-déplacer interceptés par ces contrôles en gérant de force les événements glisser-déposer (utilisez UIElement.AddHandler et définissez managedEventsToo sur true) et définissez e.Handled sur false dans votre gestionnaire.
Il s'avère que je ne pouvais pas tomber sur mon TextBox pour une raison quelconque, mais tomber sur les boutons fonctionne bien. Got it travail en ajoutant « AllowDrop = « true » » à ma fenêtre et l'ajout gestionnaire d'événements goutte à bouton comprenant:
private void btnFindType_Drop(object sender, DragEventArgs e)
{
if (e.Data is System.Windows.DataObject &&
((System.Windows.DataObject)e.Data).ContainsFileDropList())
{
foreach (string filePath in ((System.Windows.DataObject)e.Data).GetFileDropList())
{
// Processing here
}
}
}
J'ai remarqué que glisser & drop dans WPF n'est pas aussi facile que cela pourrait être. Donc, je l'ai écrit un court article sur ce sujet: http://www.wpftutorial.net/DragAndDrop.html
Non, vous avez copié et collé quelqu'un d'autre article sans attribution . Voté vers le bas. –
@Nick: Je pense que c'était l'article original qui a été copié par d'autres. J'ai googlé le premier paragraphe et trouvé des résultats qui ont été pris ailleurs. –
Nick, Si vous pensez que ce n'est pas l'original, alors vous devriez dire quel est l'original. Comment peux-tu dire quelque chose sans nous montrer de preuve ??? –
les opérations suivantes:
private void MessageTextBox_Drop(object sender, DragEventArgs e)
{
if (e.Data is DataObject && ((DataObject)e.Data).ContainsFileDropList())
{
foreach (string filePath in ((DataObject)e.Data).GetFileDropList())
{
// Processing here
}
}
}
private void MessageTextBox_PreviewDragEnter(object sender, DragEventArgs e)
{
var dropPossible = e.Data != null && ((DataObject)e.Data).ContainsFileDropList();
if (dropPossible)
{
e.Effects = DragDropEffects.Copy;
}
}
private void MessageTextBox_PreviewDragOver(object sender, DragEventArgs e)
{
e.Handled = true;
}
J'ai eu problème similaire, les événements de chute et faites glisser entrer dans les événements ne sont pas tirés. Le problème était avec les paramètres de compte utilisateur Windows. Réglez-le au paramètre le moins sécurisé et essayez le même code que cela fonctionne.
- 1. DragNDrop de Java à l'Explorateur Windows
- 2. détecter le fichier flash corrompu
- 3. Comment détecter la liaison de données terminée dans WPF
- 4. Overrriding Méthode HitTestCore pour détecter plusieurs contrôles dans WPF
- 5. Le fichier existe dans WPF
- 6. détecter svn changements dans un .bat
- 7. Enregistrement d'un visuel dans un fichier avec effet PixelShader - WPF
- 8. Détermination du InlineUIContainer sélectionné dans un fichier WPF RichTextBox
- 9. Comment forcer le mode insertion dans un fichier WPF RichTextBox
- 10. Comment utiliser un fichier App.config dans les applications WPF?
- 11. comment détecter si une URL pointe vers un fichier SWF
- 12. Comment détecter s'il est exécuté sous valgrind dans un fichier make ou un script shell?
- 13. Comment détecter les extrémités d'un fichier dans newline?
- 14. Comment détecter le type MIME d'un fichier téléchargé dans ASP.NET?
- 15. Détecter un événement de clavier dans C
- 16. Détecter la connectivité réseau à partir d'une application WPF/XBAP?
- 17. Comment détecter un appel Selector.wakeup
- 18. Comment détecter les champs manquants dans un fichier CSV d'une manière Pythonic?
- 19. détecter Server.Transfer dans ASP classique
- 20. Comment détecter un NumberDecimalSeparator dans un événement KeyDown (C#)
- 21. Comment détecter un modificateur de clavier dans un bookmarklet?
- 22. Détecter le téléchargement dans UIWebView
- 23. Détecter quand AJAX change HTML dans un DIV dans WebBrowser
- 24. Redimensionner un contrôle dans WPF
- 25. Ressources WPF dans un assembly
- 26. WPF GridViewRowPresenter dans un ItemsControl
- 27. Détecter dynamiquement un enfant XML
- 28. Comment détecter un fil bloqué?
- 29. détecter si un ASCX/ASPX s'exécute dans SharePoint?
- 30. Existe-t-il un moyen simple de détecter si un fichier contient des données EXIF?
À la votre! Votre idée est également discutée ici: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/a539c487-1dec-4935-b91b-c3ec252eb834 – NoizWaves