(Leadtools.Controls)

フレームを表示

ImageViewerDragInteractiveModeクラス




メンバ 
マウスまたはタッチを使用して画像ビューワから画像およびフローターをドラッグします。
オブジェクトモデル
構文
public class ImageViewerDragInteractiveMode : ImageViewerInteractiveMode 
'Declaration
 
Public Class ImageViewerDragInteractiveMode 
   Inherits ImageViewerInteractiveMode
解説

ImageViewerDragInteractiveModeImageViewerInteractiveModeと以下のイベントへの定期購読から派生

このモードによって、ドラッグ操作のためのソースとしてImageViewerを使うことができます。ビューワは、ユーザーがクリックして、ビューワで項目のimageまたはフローターの上でドラッグするときUI通知を初期化して、更新することをその後処理します。

モードは、ビューワで任意の項目に関して機能します。ユーザーがビューワをクリックするとき、モードはドラッグ操作のために自動的にソース項目を検出するためにAutoSetを使います。これは、DragStartedイベントにリスニングによってされます。

このイベントはいつ発生します、モードは項目(ImageViewerInteractiveMode.Itemnullでありません)をクリックされるユーザーならば、それがドラッグを開始しないことを最初に確認します。そして、項目のどの部分をドラッグするべきか決定することが、ItemPartを確認します。現時点では、値がImageViewerItemPart.Floaterであるならば、そうでない場合、フローターはドラッグされます、ImageViewerItem.Image。この状態が満たされない(ImageViewerItemPart.Floaterが指定されるとき項目はimageまたはフローターを持っていません)ならば、操作は開始しません。

Windowsフォームプラットホームでは、ドラッグはDoDragDropを用いて実行されます。このメソッド2つのパラメータを必要とします。最初はドラッグオブジェクトです、そして、第2は許可するエフェクトです。

ドラッグオブジェクトは項目(imageかフローター)から得られます、そして、形式の値は以下のように確認されます:

AllowedEffectsは、どのエフェクトがターゲット(コピー、移動またはリンク)に許可するか決定します。AllowedEffectsの値がDragDropEffects.Noneであるならば、ドラッグ操作は開始されません。フローターimageが使われるならば、リンクエフェクトがサポートされない、そして、ドラッグ操作が中止される点に注意します。フローターはコピーされなければならないか、移動されなければなりません。

DoDragDropは、1つ前の手順で得られるデータオブジェクトとエフェクトを用いて現在の画像ビューワコントロールの上で呼び出されます。このメソッドが返る、そして、移動エフェクトが使われたとき、そしてモードはソース項目からimageまたはフローターを削除します。AutoDisposeImagesは、データが二回開放されないことを確認するのに用いられます。リンクが指定されるならば、同じRasterImage参照は相手項目またはImageViewerに置かれます。項目がアプリケーションによって破棄されるとき、これは考慮に入らなければなりません。同じ画像ビューワの相手項目のために、これは通常AutoDisposeImagesによって自動的に処理されます。様々な画像ビューワの相手項目のために、ユーザーは、インスタンスがここで共有imageを開放する競合を解決する役割を果たします。

TargetImageViewerModeは、これのターゲットが操作をドラッグして、どの画像ビューワがサポートされるか決定するのに用いられます。画像ビューワは同じビューワで1つの項目からもう一つまでimageをドラッグすることができます、または、形式がある同じアプリケーションの様々なビューワにとって、RasterImage.RasterImageDataFormatが使われます。DataFormats.Bitmapが使われるならば、ターゲットデスティネーションはドロップデータとしてこの形式(そして、エフェクト)を受け取る他のどのコントロールでもありえます。

DoDragDropが機能している、そして、ユーザーがソースimageをドラッグしていて、ImageViewerはドロップ操作を修正するか、操作をキャンセルするのにユーザーを見込むItemDragDropイベントを発生します。イベントデータは、以下のメンバを格納します:

メンバ 説明
SourceImageViewer

ドラッグイベントを始めた画像ビューワ。これは、ImageViewerDragInteractiveModeに現時点では関連づけられる同じImageViewerです

TargetImageViewer

このドロップ操作のための現在のターゲット画像ビューワ。1つ以上の画像ビューワが存在するならばユーザーがアプリケーションの上でドラッグして、これは変更します。項目が同じビューワ(サポートされるならば)の上にドラッグされているならばオブジェクトが画像ビューワオブジェクトとSourceImageViewerと同じ値に現時点ではかかっていないならば、それはnullでありえます

操作

エンターなどの現在のドラッグ操作、オーバー、そのままになるか、ドロップします

場所

TargetImageViewerに関するドラッグ項目の現在の位置

SourceItem

操作を始めたSourceImageViewerの項目

TargetItem

現時点ではドロップ操作のためのターゲットであるだろうTargetImageViewerの項目。それは、画像ビューワが任意の項目を持っていないならば、または、オブジェクトが任意の項目境界の上にないならば、nullでありえます

エフェクト

現在のエフェクト、カーソルをこんなに更新する変更

形式

データの形式オブジェクト。

Abort

操作をキャンセルするのにユーザーを見込みます

コード例は、操作が呼び出すドラッグを傍受する方法を示します。

詳細については、「画像ビューワの対話モードと画像ビューワのドラッグ&ドロップ」を参照してください。

サンプル
Copy Code  
Imports Leadtools
Imports Leadtools.Controls
Imports Leadtools.Codecs
Imports Leadtools.Drawing
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

_imageViewer.InteractiveModes.BeginUpdate()
Dim dragMode As ImageViewerDragInteractiveMode = New ImageViewerDragInteractiveMode()
dragMode.AllowedEffects = DragDropEffects.Copy Or DragDropEffects.Move Or DragDropEffects.Link
_imageViewer.InteractiveModes.Add(dragMode)
_imageViewer.InteractiveModes.EndUpdate()
using Leadtools;
using Leadtools.Controls;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

_imageViewer.InteractiveModes.BeginUpdate();
ImageViewerDragInteractiveMode dragMode = new ImageViewerDragInteractiveMode();
dragMode.AllowedEffects = DragDropEffects.Copy | DragDropEffects.Move | DragDropEffects.Link;
_imageViewer.InteractiveModes.Add(dragMode);
_imageViewer.InteractiveModes.EndUpdate();
必要条件

ターゲットプラットホーム

参照

参照

ImageViewerDragInteractiveModeメンバ
Leadtools.Controls名前空間