检测WPF中的拖放文件?是否有可能获得WPF窗口/元素检测以在C#.Net3.5中从Windows资源管理器拖放文件?我找到了适用于WinForms但不适用于WPF的解决方案。不幸的是,TextBox、RichTextBox和FlowDocument查看器总是将拖放事件标记为已处理,以防止它们冒泡到处理程序。您可以通过强制处理拖放事件(使用UIElement.AddHandler并将processedEventsToo设置为true)并在处理程序中将e.Handled设置为false来恢复被这些控件拦截的拖放事件。试试这个:privatevoidMessageTextBox_Drop(objectsender,DragEventArgse){if(e.DataisDataObject&&((DataObject)e.Data).ContainsFileDropList()){foreach(((DataObject)e.Data中的字符串文件路径)。GetFileDropList()){//此处处理}}}privatevoidMessageTextBox_PreviewDragEnter(objectsender,DragEventArgse){vardropPossible=e.Data!=null&&((DataObject)e.Data).ContainsFileDropList();如果(dropPossible){e.Effects=DragDropEffects.Copy;}}privatevoidMessageTextBox_PreviewDragOver(objectsender,DragEventArgse){e.Handled=true;事实证明,出于某种原因我无法放入我的TextBox,但按下按钮可以正常工作。通过将'AllowDrop="True"'添加到我的窗口并向包含以下内容的按钮添加一个放置事件处理程序来使其工作:privatevoidbtnFindType_Drop(objectsender,DragEventArgse){if(e.DataisSystem.Windows.DataObject&&((System.Windows.DataObject)e.Data).ContainsFileDropList()){foreach(stringfilePathin((System.Windows.DataObject)e.Data).GetFileDropList()){//在这里处理}}}我注意到在WPF中拖放并不是那么容易。所以我写了一篇关于这个主题的简短文章:http://www.wpftutorial.net/DragAndDrop.html我遇到了类似的问题,拖放事件和拖动输入事件没有被触发。问题出在Windows用户帐户设置上。将其设置为最不安全的设置并尝试相同的代码。以上就是C#学习教程:DetectingDrag’n’DropfilesinWPF?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
