1
ファイルをデスクトップにドラッグすると、ドラッグが成功します。私はそれを単にチェックすることで分かります。しかし、私はプログラムにそれを知りたがっています。しかし、 - DragDropEffects
は常にNone
です。デスクトップにドラッグしたときにドラッグ結果を取得するにはどうすればよいですか?
ファイルをデスクトップにドラッグすると、ドラッグが成功します。私はそれを単にチェックすることで分かります。しかし、私はプログラムにそれを知りたがっています。しかし、 - DragDropEffects
は常にNone
です。デスクトップにドラッグしたときにドラッグ結果を取得するにはどうすればよいですか?
DragDrop.DoDragDrop
これを行うには、適切なDataObject
を渡す必要があります。
最初にファイルをどこかにコピーします。あなたはどこにいなくてもSystem.IO.Path.GetTempPath()
を使うことができます。
次は、ファイルへの完全なパスを含む文字列配列を作成し、次の操作を行います。
string[] paths = ...;
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
DragDropEffects.Copy);
DragDrop
がDragDrop
の最終結果であるDragDropEffectsを返します。
私はそれを持っています(DragDrop.DoDragDropを除く - それは何ですか?)、ドラッグが動作することを覚えています。 – Anonymous
@Anonymous:ここをクリック - http://msdn.microsoft.com/en-us/library/system.windows.dragdrop.dodragdrop.aspx –
ありがとうございました。 申し訳ありませんが、私はPresentationCore.dllとWindowsBase.dllを参照した後でも、あなたのサンプルが動作するようには見えません。 「this」のエラーメッセージが表示されます。私は 'new System.Windows.DependencyObject()'に置き換えようとしましたが、 "スコープはUIElementまたはContentElementでなければなりません"というエラーメッセージが表示されます。 – Anonymous