2017-03-06 41 views
0

我在想如何在Windows環境中光標在桌面上拿着圖標並獲取該圖標的狀態。WPF,如何檢查遊標是否有文件?

例如,當我在桌面上抓住一個文件並拖動它時,我想要弄清楚這個文件的屬性,比如它的名字和擴展名。

回答

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()您可以將內容轉換爲特定的格式,然後訪問它的屬性。

重要的是要注意,一切都可能是你的抓取的對象,如你的應用程序中的文件,文件夾,列表對象。你必須先檢查這個,並允許它。

然後,您可以使用System.IO.FileInfo讀取Drop實施中的文件。

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.. 
    } 
} 
+0

我不想獲取有關拖放的信息。 我想獲取有關光標所在文件的信息,如鍵盤鉤子。 –