Leadtools.Documents.UI名前空間 :DocumentViewerPageLinksInteractiveModeクラス |
public class DocumentViewerPageLinksInteractiveMode : Leadtools.Controls.ImageViewerInteractiveMode
'Declaration
Public Class DocumentViewerPageLinksInteractiveMode Inherits Leadtools.Controls.ImageViewerInteractiveMode
'Usage
Dim instance As DocumentViewerPageLinksInteractiveMode
public ref class DocumentViewerPageLinksInteractiveMode : public Leadtools.Controls.ImageViewerInteractiveMode
ページリンクは現在のドキュメントで各々のDocumentPageオブジェクトで保存されて、DocumentPage.GetLinksメソッドを用いて得られることができます。
各々のリンクは、それが指定するLinkTypeプロパティを格納する型DocumentLinkです、リンクのターゲット同じページまたはドキュメントにおいて、または、ターゲットが極値(ハイパーリンクなどの)であるならばもう一つの場所です。
型と同様に、各々のリンクは、ページ読込みドキュメント座標で場所とサイズを指定する境界を格納します。
アプリケーションを表示している一般的なドキュメントに、「手」にマウスカーソルを変更することなどの、リンクは徴候にユーザーがマウスでマウスを重ねる時を示さなければなりません。できれば呼び出されて、ユーザーがリンクをクリックするとき、デフォルトアクション、ターゲットへ行くことなどの、場所はドキュメントでリンクによって明記しました。
RunLinkKeyModifierを通してキーボードモディファイアーの下で圧迫している間ユーザーが項目についてクリックする時だけ、このモードは実行リンクをサポートします。デフォルト値は、Noneです。しかし、必要ならば、変更されることができます ― たとえば、Microsoft Wordがドキュメントで埋め込まれるリンクをクリックすることを実行する方法を模倣するためにそれをコントロールに設定する。
このDocumentViewerが作成されるとき、DocumentViewerPageLinksInteractiveModeのインスタンスはビューのImageViewerのInteractiveModesリストに初期化されて、追加されます。
DocumentViewerPageLinksInteractiveModeは、自動的に上述の行動を処理することができる対話モードです。ユーザーがリンクについてマウスを重ねるとき、それはマウスカーソル(プラットホームがサポートするとき)を「手」に変更します、そして、ユーザーがクリックするとき、ターゲットがドキュメントの場所であるならば、それはユーザーに知らせて、自動的に必要に応じてリンクで特定されたアクションを呼び出します。
このモードは、以下のように機能します:
いつでも、モードは、マウスかタッチイベントがリンクにあるかどうか決定するために、現在のページでリンクの境界プロパティを使います。これがtrueであるならば、それはIsHandled値をtrueに設定します。ユーザーがもう一度マウスを重ねるか、リンクをクリックするとき、これはこのモードがビューImageViewerで現時点では他の対話モードと協力して機能するのを許可して、アクティベーションされるだけです。
したがって、このモードは、作成時に自動的にDocumentViewerによって追加されます。それは常に有効にされます、そして、リンクサポートが必要とされるならば、ユーザーは正常動作のためにそれのスイッチを切る必要はありません。このサポートが必要でないならば、この移動は無効にされることができる(IsEnabled)か、ImageViewerのInteractiveModesリストから完全に削除されることができます。
ユーザーがリンクにかかっているカーソルをマウスを重ねるときプラットホームが追跡するためにマウスをサポートするとき、移動イベントを使います。操作は、DocumentLinkがもう一度マウスを重ねられてData1であると反対するDocumentViewerOperation.HoverLinkで発生します。ユーザーが任意のリンクからカーソルを移動するならば、Data1の値はnullであるでしょう。操作は、通常通りfalse、それからtrueに設定されるIsPostOperationの値で、最初に発生します。すべての場合に、現在のマウスまたはタッチ移動操作のためのインタラクティブイベントデータ(InteractiveEventArgs)は、必要ならば現在のカーソル位置を取得するために、Data2です)。RunLinkKeyModifierと一緒のこの操作は、リンクのために豊かなユーザー経験を作成するために、アプリケーションプログラムを許可します、ほどのリンクにMicrosoft WordまたはAdobe Acrobatと肉薄する方法でヘルプでツールチップウィンドウにリンク値を示している。
ユーザーがマウスをクリックするか、境界をリンクについてタップするならば、この時、以下が起こることを確認するために、DragStartedイベントを使います:
操作はDocumentViewerOperation.RunLinkで発生します。そして、DocumentLinkオブジェクトがfalseにData1とIsPostOperationの値でクリックされます。ユーザーはこのイベントを妨害することができて、アプリケーションがこのイベントを処理して、次の手順に続行することからモードを停止することを示すために、Abortの値をtrueに設定することができます。全ての場合において、現在のマウスまたはタッチダウン操作のためのインタラクティブイベントデータ(InteractiveEventArgs)は、必要ならば現在のカーソル位置を取得するために、Data2です)。
ユーザーがアクションを中止しないならば、このモードはLinkTypeの値を確認します。値がDocumentLinkType.TargetPageであるならば、RunLinkTargetはターゲットを指定して呼び出されます。これはビューをリンクの指定されたページの方へ動かして、フィットを実行して、指定されるパーセンテージをズームします。
IsPostOperationが操作が完了されることを示すためにここでtrueこと以外は、操作は前の通り同じパラメータで再び発生します。