我想知道在Windows环境中光标如何在桌面上按住图标并获取该图标的状态。
例如,当我在桌面上抓取文件并拖动它时,我想弄清楚这个文件的属性,例如它的名称和扩展名。
答案 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..
}
}