WPF,如何检查光标是否有文件?

时间:2017-03-06 09:12:00

标签: c# wpf

我想知道在Windows环境中光标如何在桌面上按住图标并获取该图标的状态。

例如,当我在桌面上抓取文件并拖动它时,我想弄清楚这个文件的属性,例如它的名称和扩展名。

1 个答案:

答案 0 :(得分:1)

WPF控件可以使用EventHandler DragEnter进行检查。

<ListView x:Name="DropList" 
          Drop="DropList_Drop" 
          DragEnter="DropList_DragEnter" 
          AllowDrop="True" />     


private void DropList_DragEnter(object sender, DragEventArgs e)
{
    if (!e.Data.GetDataPresent(DataFormats.FileDrop)) // checks for File
    {
        e.Effects = DragDropEffects.None;
    }
}

使用Data.GetDataPresent(),您可以将内容转换为特定格式,然后访问其属性。

重要的是要注意,一切都可能是您的抓取的对象,例如应用程序中的文件,文件夹,列表对象。你必须先检查一下,然后允许它。

然后,您可以使用Drop阅读System.IO.FileInfo实施中的文件。

private void DropList_Drop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
        // loop through files..
    }
}