0
私は、Windows環境でカーソルがデスクトップ上のアイコンを保持していて、そのアイコンのステータスを取得しているのだろうかと思います。WPF、カーソルにファイルがあるかどうかを確認するにはどうすればいいですか?
たとえば、デスクトップ上のファイルを取得してドラッグすると、このファイルの名前や拡張子などのプロパティを把握する必要があります。
私は、Windows環境でカーソルがデスクトップ上のアイコンを保持していて、そのアイコンのステータスを取得しているのだろうかと思います。WPF、カーソルにファイルがあるかどうかを確認するにはどうすればいいですか?
たとえば、デスクトップ上のファイルを取得してドラッグすると、このファイルの名前や拡張子などのプロパティを把握する必要があります。
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..
}
}
ドロップとドラッグに関する情報を取得したくありません。 キーボードフックのように、カーソルが持つファイルに関する情報を取得したいとします。 –