1

我正在尝试设置一个 WPF 窗口,以便它可以通过Drag and Drop. 如果我创建一个新项目并将窗口设置为以下内容:

<Window x:Class="DropShare.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300" AllowDrop="True" DragEnter="Window_DragEnter">

    <Grid>

    </Grid>
</Window>

并将代码隐藏设置为:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    private void Window_DragEnter(object sender, DragEventArgs e)
    {

    }
}

我只会DragEnter因为文件而被解雇。它永远不会因为其他任何东西而触发——文本、图像等。

有什么我想念的吗?我读过的所有教程似乎都表明这就是所需要的,因为DragEnter事件处理程序让我说明我接受的内容。

4

2 回答 2

1

所以你的代码对我来说很好。但是试试这个...

在您的窗口中:

<Label Background="Purple" HorizontalAlignment="Center" VerticalAlignment="Center" Content="Drag from here!" MouseDown="Label_MouseDown"/>

在你的代码后面:

private void Label_MouseDown(object sender, MouseButtonEventArgs e)
{
    DragDrop.DoDragDrop(this, "This is just a test", DragDropEffects.All);
}

然后从标签拖到窗口中,看看你的事件是否触发。

如果这可行,它可能与 Visual Studio 和您的外部环境之间的权限级别有关(可能)。

看:

https://superuser.com/questions/59051/drag-and-drop-file-into-application-under-run-as-administrator

于 2013-02-12T17:09:45.233 回答
0

在 WPF 中拖放功能总是要处理DragDrop类,请在此处查看如何在应用程序之间进行拖放

于 2013-02-12T17:05:23.867 回答