C1DragDropManagerコンポーネントの概要
前述したとおり、DragDropManager for WPFのC1DragDropManagerコンポーネントは、WPFアプリケーションにドラッグ&ドロップ操作機能を簡単に追加できるコンポーネントです。
ドラッグ&ドロップサービスを提供するクラスなので、ウィンドウに表示されず機能の提供だけを行います。
C1DragDropManagerクラスは、Windowsフォームのドラッグ&ドロップ実装のパターンに従い、ドラッグ&ドロップ操作を開始するために呼び出されるDoDragDropメソッドを提供し、プロセス全体をカスタマイズするためのイベント(DragStart、DragEnter、DragOver、DragLeave、DragDrop)を発生させます。
このイベントのパラメータには、ドラッグされる項目(e.DragSource)やドロップされる場所(e.DropTarget)に関する情報が格納されます。
C1DragDropManagerクラスには、プロセス全体を簡略化する2つのヘルパーメソッドがあります。それは、RegisterDragSourceとRegisterDropTargetです。これらのメソッドは、ほとんどの一般的なドラッグ&ドロップのシナリオを少ないコードで記述できる機能を提供します。これらのメソッドで要素をソースやターゲットとして登録すると、C1DragDropManagerは、マウスを監視し、ドラッグ&ドロップ操作を管理します。
そのため、プログラマに必要な作業は移動またはコピーの操作を実行するためにDragDropイベントを処理するだけです。
C1DragDropManagerコンポーネントの特徴
このC1DragDropManagerコンポーネントは、次のような特徴を持っています。
ドラッグ&ドロップ動作の制御
C1DragDropManagerコンポーネントには、ドラッグ&ドロップ処理全体を制御できるさまざまなメソッドやイベントが用意されています。いくつかの要素をドラッグ元およびドロップ先として登録してから、要素を新しい場所に移動またはコピーするためにDragDropイベントを処理するだけで、アプリケーションにドラッグ&ドロップ機能を実装できます。
ドラッグマーカーのカスタマイズ
C1DragDropManagerコンポーネントは、ドラッグ元とドロップ先のドラッグマーカーの外観をカスタマイズするためのプロパティを公開します。これにより、操作全体が見栄えよく、ユーザーフレンドリーになります。
スクロールのサポート
スクロール可能なターゲットの端の近くにオブジェクトをドラッグすると、ターゲットが自動的にスクロールされるので、エンドユーザーは、要素を1回の操作で目的の場所にドロップできます。
C1DragDropManagerクラスのメンバ
C1DragDropManagerコンポーネントを使ってドラッグ&ドロップ機能を実装するには、C1DragDropManagerクラスの以下の主要なメンバとイベントを使用します。
プロパティ | 説明 |
---|---|
AutoScroll |
C1DragDropManagerコンポーネントがドロップ先を含むScrollViewerを 自動的にスクロールするかどうかを取得または設定 |
AutoScrollDelay | 自動スクロールステップの時間間隔をミリ秒単位で取得または設定 |
AutoScrollEdge |
マウスがドラッグ先要素の端にどの距離まで近付いたら 自動スクロール処理を開始するかを取得または設定 |
AutoScrollStep | 自動スクロールステップごとにスクロールするピクセル数を取得または設定 |
Canvas | ドラッグ&ドロップ処理の表示に使用されるキャンバスへの参照を取得 |
DragThreshold |
マウスがどれだけ移動したらドラッグ操作を開始するかを ピクセル単位の距離で取得または設定 |
SourceMarker | ドラッグ元の強調表示に使用される境界線への参照を取得 |
TargetMarker | ドロップ場所を示すために使用される境界線を取得 |
メソッド | 説明 |
---|---|
ClearSources | 登録されているすべてのドラッグ元を削除 |
ClearTargets | 登録されているすべてのドロップ先を削除 |
DoDragDrop |
UIElementをドラッグ元として使用するドラッグ&ドロップ操作を開始し、 指定されたDragDropEffectをサポート |
RegisterDragSource | ドラッグ元として機能するUIElementを登録 |
RegisterDropTarget | 要素をドロップ先として登録(または登録解除) |
イベント | 説明 |
---|---|
DragAutoScroll | ドロップ場所をビュー内に留めておくためにC1DragDropManagerコンポーネントがScrollViewerを自動的にスクロールした後で発生 |
DragDrop | ドラッグ&ドロップ処理の最後に、ユーザーが登録されたドロップ先上でマウスボタンを放したときに発生 |
DragEnter | ドラッグ&ドロップ処理中に、ポインタが登録されたドロップ先に入ったときに発生 |
DragLeave | ドラッグ&ドロップ処理中に、ポインタが登録されたドロップ先から出たときに発生 |
DragOver | ドラッグ&ドロップ処理中に、ポインタが登録されたドロップ先上に移動したときに発生 |
DragStart | ドラッグ&ドロップ処理が開始されたときに発生 |