3

wpfドラッグドロップ機能をフォームに実装しようとしています。ctrl目的は、ドラッグしてユーザーコントロールのコピーを作成することを実装することです( +Mouseleftbuttonドラッグアンドドロップを使用したWindows 7フォルダーのコピーに似ています)。ctrl キーが押されていない場合、ドロップは正常に機能しますが、ctrlキーが押されている場合、ドロップ イベントは発生しません。ctrlキーが押されたときにドロップを検出するにはどうすればよいですか?

4

1 に答える 1

3

目的を達成するためにキーの押下を検出する必要はありません。それはすべて、プロパティの値に依存し(DragEventArgs).AllowedEffectsます。DragDrop.DoDragDropこれは、メソッドを呼び出すときに最初に設定されます。

DragDrop.DoDragDrop(dragSource, data, DragDropEffects);

ここで、DragDropEffectsプロパティは type の列挙を表しますDragDropEffects。これを に設定するとDragDropEffects.Copy | DragDropEffects.Move、 (キーを押したままにすると)移動またはコピーできるようになります。Ctrl

DragDrop.DoDragDrop(dragSource, data, DragDropEffects.Copy | DragDropEffects.Move);

type のパラメーターを受け取るドラッグ アンド ドロップ ハンドラーの 1 つで、メソッドで設定した値がプロパティに含まれていることDragEventArgsわかります。プロパティを同じ値に設定して 、ユーザーがマウス ボタンを離したときに両方の操作を実行できるようにするだけです。(DragEventArgs).AllowedEffectsDragDrop.DoDragDrop(DragEventArgs).Effects

于 2013-09-11T10:04:04.270 に答える