Pau*_*aul 6 wpf xaml drag-and-drop
我在Google和Stack Overflow上发现了很多次这个问题.没有一个解决方案有效.
我有一个TextBox.AllowDrop设置为true.我首先尝试了DragEnter/DragOver/Drop事件,然后切换到所有这些事件的"预览"事件.无论我做什么,都没有事件被调用.接下来我尝试在InitializeComponent()之后添加处理程序.没运气.
Xaml - 注释掉了,因为我不能发布它:
<TextBox PreviewDragEnter="OutputFolder_DragEnter" PreviewDragOver="OutputFolder_DragOver" AllowDrop="True" PreviewDrop="OutputFolder_Drop" />
Run Code Online (Sandbox Code Playgroud)
没有发布C#代码,因为没有遇到任何断点.它根本不起作用.正如我所提到的,我确实尝试手动添加处理程序,但仍然无法使其正常工作.
订阅 PreviewDragHandler 并设置 e.Handled = true。然后 Drop 事件应该触发。
private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
{
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
XAML 如下所示,
<TextBox VerticalAlignment="Center" AllowDrop="True"
PreviewDragOver="TextBox_PreviewDragOver"/>
Run Code Online (Sandbox Code Playgroud)
7年后...
在提出这个问题时我放弃了拖放。我无法让它工作。我最终在一个完全不相关的应用程序中需要它,并且再次无法让它工作。在一些谷歌搜索中,我最终在这里找到了我自己的该死的问题。不过终于解决了!
Visual Studio 设置为以管理员身份运行。这是 IIS 和 Web 应用程序所必需的。但是 Windows 资源管理器不允许在我的资源管理器窗口和我的应用程序之间拖放文件,因为它们在不同的海拔/用户权限下运行。如果我单独启动该应用程序,它实际上可以工作,并且可能在 7 年前也可以工作。不调试启动并不是一个解决方案,因为 Visual Studio 仍然会启动它。需要通过双击 EXE 来启动。