このカスタム階層プロパティのメンバの一覧については、 Edit メンバを参照してください。
説明
ImageKit コントロールにて、様々なアノテーション・編集機能を実現します。- 実行可能なアノテーション・編集機能は、以下のとおりです。(ImageKit WPF
では、描画・貼付されたものを「オブジェクト」と呼びます。)
- ■
直線(矢印)・連続線(矢印)・多角形・矩形・角丸矩形・楕円・ペン・テキスト・スタンプの各オブジェクト描画、イメージの貼付(貼付イメージオブジェクト)
(コントロール上のマウス操作、またはメソッドにより実行可能。) - ■ 各オブジェクトの単独選択・範囲選択・全オブジェクト選択
(コントロール上のマウス操作により実行可能。単独選択・全オブジェクト選択はメソッドによっても可。) - ■ 各オブジェクトの移動(単独選択、範囲・全体選択時)、拡大・縮小・回転(単独選択時のみ)
(コントロール上のマウス操作、またはプロパティにより実行可能。) - ■ 各オブジェクトの削除・コピー・切り取り・貼付け(単独選択、範囲・全体選択時)、z
オーダー変更・描画後のプロパティ変更(単独選択時のみ)
(コントロール上の右クリックによるコンテキストメニュー、またはメソッドにより実行可能) - ■ 編集・アノテーション作業を、元に戻す・やり直す
(コントロール上の右クリックによるコンテキストメニュー、またはメソッドにより実行可能) - ■ 描画・編集したオブジェクトをファイルに保存、保存したファイルをイメージ上にロード
(メソッドにより実行可能) - ■ 描画・編集したオブジェクトをラスタイメージに埋め込み(オブジェクトのラスタライズ)
(メソッドにより実行可能)
- マウス操作による描画・編集の方法(いずれも、予め ImageKit
コントロールに基本イメージを読み込んである状態でのみ有効です。)
(メソッドによる方法は、各メソッドの説明ページをご覧ください。)
※各項目内の説明における諸プロパティの設定や編集操作は、 Newtone.ImageKit.WPF.ToolBarStandard 、 Newtone.ImageKit.WPF.ToolBarSetUpLines 、 Newtone.ImageKit.WPF.ToolBarSetUpObjects 、 Newtone.ImageKit.WPF.ToolBarAnnotation 、 の各 ToolBar によっても可能です。詳しくは、各 ToolBar のヘルプをご参照ください。
- ■ 直線(矢印直線)
(1) PenWidth、 ForeColor、 ForeColorOpacity 、 DoubleLine、 StartLineCap、 EndLineCap、 DashStyle、 StartArrowCap、 StartArrowCapFilled、 StartArrowCapSize、 EndArrowCap、 EndArrowCapFilled、 EndArrowCapSize の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Line に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、直線が描画されます。
※ Shift キーを押しながら描画すると、2点目のマウスの位置によって 0度・±45度・±90度の直線を描画します。 - ■ 連続線(矢印連続線)
(1) PenWidth、 ForeColor、 ForeColorOpacity、 StartLineCap、 EndLineCap、 DashStyle、 LineJoin、 StartArrowCap、 StartArrowCapFilled、 StartArrowCapSize、 EndArrowCap、 EndArrowCapFilled、 EndArrowCapSize の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Polyline に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンをクリックし(ボタンは放します)、ボタンを放したままマウスを動かすと、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを再びクリックすると2点目が決定され、ひとつの直線が描画されます。引き続きマウスを動かすと、2点目とマウス位置を結ぶ直線が表示されますので、描画したい3点目の座標でボタンを再びクリックして座標を決定します。以降この作業を繰り返し、描画したい最後の座標でダブルクリックするとすべての座標が決定し連続線が描画されます。
ContextMenuEnabled プロパティを True に設定しておき、連続線の描画の途中(ダブルクリックですべての座標を決定する前)で、右クリックしてコンテキストメニューの「元に戻す」を選択すると、その段階での最新座標が取り消され、一つ前の座標と現在のマウス位置を結ぶ直線が表示されます。(すべての座標を取り消すと、描画前の状態に戻ります。) - ■ 多角形
(1) PenWidth、 ForeColor、 ForeColorOpacity、 Fill、 BackColor、 BackColorOpacity、 DashStyle、 LineJoin の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Polygon に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンをクリックし(ボタンは放します)、ボタンを放したままマウスを動かすと、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを再びクリックすると2点目が決定され、ひとつの直線が描画されます。引き続きマウスを動かすと、2点目とマウス位置を結ぶ直線が表示されますので、描画したい3点目の座標でボタンを再びクリックして座標を決定します。以降この作業を繰り返し、描画したい最後の座標でダブルクリックすると、その座標と最初の座標が直線で接続され、すべての座標が決定し多角形が描画されます。
ContextMenuEnabled プロパティを True に設定しておき、多角形の描画の途中(ダブルクリックですべての座標を決定する前)で、右クリックしてコンテキストメニューの「元に戻す」を選択すると、その段階での最新座標が取り消され、一つ前の座標と現在のマウス位置を結ぶ直線が表示されます。(すべての座標を取り消すと、描画前の状態に戻ります。) - ■ 矩形・角丸矩形・楕円
(1) PenWidth、 ForeColor、 ForeColorOpacity、 Fill、 BackColor、 BackColorOpacity、 RoundRectangleRadius (角丸矩形のみ)の各プロパティを設定しておきます。
(2) EditKind プロパティを、 矩形の場合は KindOfEdit.Rectangle に、 角丸矩形の場合は KindOfEdit.RoundRectangle に、 楕円の場合は KindOfEdit.Ellipse に設定します。
(3) 描画したいひとつの角の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を対角とする矩形(またはその矩形に内接する楕円)が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、矩形・角丸矩形・楕円が描画されます。
※ Shift キーを押しながら描画すると、正方形・円を描画します。 - ■ ペン
(1) PenWidth、 ForeColor ForeColorOpacity、 StartLineCap、 EndLineCap、 DashStyle、 LineJoin、 ClosePenLine の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Pen に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、ドラッグした軌跡に合わせて連続線が描画され、ボタンを放した時点でひとつのオブジェクトとして決定されます。 - ■ 貼付イメージ
(1) EditKind プロパティを、 KindOfEdit.Image に設定します。
(2) 貼り付けたいひとつの角の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を対角とする矩形が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、ファイルオープンダイアログが開きます。
(3) 貼り付けたいイメージファイルを選択し、ダイアログボックスの「開く」ボタンをクリックすると、(2)で決定した位置、大きさで選択したイメージが貼り付けられます。
※ AspectRatio プロパティを True にして貼り付けると、(2)で決定した矩形の形状に関わらず、貼り付けるイメージの縦横比を保って貼り付けられます。貼り付けられるイメージの大きさは、貼り付けるイメージの形状と(2)で描画した矩形の形状により、(2)で決定した矩形の縦か横の大きさに合わせます。
※貼り付け可能なイメージの種類は、ImageKit コントロールでロードできるものと同様です。貼り付け時にファイルの内容を自動的に判断し、貼り付け可能なイメージファイルでない場合は、(2)で決定した矩形は削除され、矩形設定前の状態に戻ります。
※貼り付け可能な種類のイメージを選択した場合でも、貼り付け範囲が非常に大きくメモリ不足で貼り付けたイメージが描画できない場合などには、白地に赤いバツ印のイメージが表示されます。この場合には、貼り付けたオブジェクトを「削除」や「元に戻す」で一度削除し、貼り付け範囲をもっと小さくするなどして再度貼付を試みてください。 - ■ テキスト・スタンプ
(1) FontName、 FontSize、 FontBold、 FontItalic、 FontStrikeout、 FontUnderline、 ForeColor、 ForeColorOpacity、 Fill、 BackColor、 BackColorOpacity、 WordWrap、 PenWidth、 Border、 BorderColor、 BorderColorOpacity、 BorderShape(スタンプのみ)、 TextAlign(スタンプのみ)、 VerticalText、 RightToLeft の各プロパティを設定しておきます。
(2) EditKind プロパティを テキストの場合は KindOfEdit.Text に、 スタンプの場合は KindOfEdit.Stamp に設定します。
(3) 描画したいテキストの左上隅の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグしてボタンを放すと、テキスト入力用エリアの矩形が表示されます。 ( Fill プロパティが True の場合は BackColor プロパティの色で、False の場合は、 ForeColor プロパティの色を RGB 反転した色で塗りつぶされた矩形になります。)
テキストオブジェクトの最終的な描画範囲は、WordWrap プロパティが True の場合は描画時に指定したままの大きさで、False の場合はここで選択した左上の座標と、設定したフォントとテキストの内容によって自動的に決定されます。
(4) キーボードで描画したい文字列を入力します。(Enter キーの押下により、複数行の入力も可能です。)
(5) (3) で表示させた入力用の矩形外のエリアをクリックすると、入力したテキストが決定されイメージ上に描画されます。(ここで決定された文字列は Text プロパティに設定されます。)
Fill プロパティが True の場合は、自動的に決定されたテキスト表示範囲が BackColor プロパティの色で塗りつぶされます。
Border プロパティが True の場合は、PenWidth プロパティの太さ、ForeColor プロパティの色の枠線が付加されます。 - ■ 単独選択
(1) EditKind プロパティを KindOfEdit.Select に設定します。
(2) 描画されているいずれかひとつのオブジェクトをクリック(*)すると、そのオブジェクトが被選択状態となり、そのオブジェクトの移動・変形(伸縮)・回転・削除・コピー・切り取りが可能となります。
* 単独選択されるクリック位置は、各オブジェクトによって異なり、以下のとおりとなります。
・直線・連続線、多角形、ペン: オブジェクトを構成するすべての座標の、最左の x 座標、最上の y 座標、最右の x 座標、最下の y 座標で囲まれた矩形内
・矩形・楕円: オブジェクトが内接する矩形内(回転されている場合は、回転した状態のオブジェクトが内接する矩形となります。)
・テキスト: テキスト描画範囲の矩形内(回転されている場合は、回転した状態のテキスト描画範囲が内接する矩形となります。) - ■ 範囲選択・複数選択
(1) EditKind プロパティを KindOfEdit.MultiSelect に設定します。
(2) マウスをドラッグすると選択範囲の矩形が表示され、構成座標がすべてその矩形内に入っているオブジェクトが被選択状態となります。
Ctrl キーを押しながらオブジェクト上をクリックすると、任意のオブジェクトを複数選択可能です。 また、Ctrl キーを押しながら選択済みのオブジェクト上をクリックすると選択は解除されます。(選択範囲の矩形内でも非選択となります。)
※SelectOnClick プロパティを True に設定している場合は、Ctrl キーによる複数選択は無効です。
(3) 選択したオブジェクトをまとめて移動・回転・削除・コピー・切り取りが可能です。 - ■ すべて選択/すべて選択を解除
(1) EditKind プロパティを KindOfEdit.MultiSelect に設定します。
(2) ContextMenuEnabled プロパティを True に設定しておき、ImageKitコントロール上の任意の位置を右クリックし、コンテキストメニューから「すべて選択」(*)を選択すると、描画されているすべてのオブジェクトが被選択状態となり、それらのオブジェクトの移動・削除・コピー・切り取りが可能となります。
* 何も選択されていないか範囲選択状態で右クリックすると、コンテキストメニューに「すべて選択」メニューが表示され、すべて選択が可能となります。すべて選択されている状態で右クリックすると、コンテキストメニューに「すべて選択を解除」メニューが表示され、すべて選択が解除できます。
* CanDeselectAllSelect プロパティを True に設定した場合は、マウス操作で「すべて選択」状態は解除となり、通常の範囲・複数選択動作となります。 - ■ オブジェクトの移動
(1) EditKind プロパティを KindOfEdit.Select または KindOfEdit.MultiSelect に設定し、オブジェクトを選択します。
(2) 被選択状態のオブジェクトの位置にマウスカーソルを移動すると、ポインタがに変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、移動したい位置でボタンを放します。
- ■ オブジェクトの変形(伸縮)
(1) 変形は、単独選択時のみ有効です。EditKind プロパティを KindOfEdit.Select に設定し、オブジェクトを選択します。
対象となるオブジェクトが、連続線・多角形・ペンの場合は、EditByPoint プロパティも設定しておきます。 (2) 被選択状態のオブジェクトの選択状態を表す矩形の境界上にマウスカーソルを移動すると、ポインタがまたは
または
または
に変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、変形させたい位置でボタンを放します。
※連続線・多角形・ペンの場合、EditByPoint プロパティを True に設定しておくと、座標ごとの編集(移動)が可能です。 選択状態のオブジェクトの ○印上にマウスカーソルを移動すると、ポインタがに変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、変形させたい位置でボタンを放します。
※ 矩形・楕円の場合、Shift キーを押しながら変形すると、 AspectRatio プロパティを True に設定している場合は変形前の縦横比を保ったまま、False の場合は変形前の形状に関わらず、正方形・円の状態で大きさが変更されます。
※ 貼付イメージの場合、AspectRatio プロパティを True にして変形すると、変形前の形状に関わらず、元イメージの縦横比を保ったままイメージの大きさが変更されます。
※ テキスト・スタンプの場合、ResizeTextOnCenter プロパティと、選択されたオブジェクトの WordWrap プロパティの値により変形時の挙動が変わります。 詳しくはResizeTextOnCenter プロパティのページをご参照ください。 - ■ オブジェクトの回転
(1) 回転は、単独選択時および範囲選択時に有効です。EditKind プロパティを KindOfEdit.Select または KindOfEdit.MultiSelect に設定し、オブジェクトを選択します。
(2) 被選択状態のオブジェクトの選択状態を表す矩形の四隅の外側にマウスカーソルを移動すると、ポインタがまたは
または
または
に変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、回転させたい位置でボタンを放します。
※単独選択時は選択したオブジェクトの中心点を、範囲選択時は選択範囲全体の中心点を中心に回転します。 - ■ 任意の矩形の範囲の設定
(1) EditKind プロパティを KindOfEdit.None に設定し、 ImageKit.RectDraw プロパティを True に設定すると、マウスドラッグや ImageKit.Rect プロパティへの直接の値設定で、任意の矩形の範囲設定が可能です。 設定した矩形は ImageKit.Rect プロパティで取得できます。
(EditEnabled プロパティが False の際の ImageKit.RectDraw プロパティを True に設定した場合と同様です。)
範囲を指定しておいて、その範囲にコードでイメージやテキストオブジェクトなどを配置する、といった場合に使用できます。
- ※編集・アノテーション作業の途中で EditEnabled プロパティを False
にした場合は、作業中の内容はすべて破棄されますのでご注意ください。
編集・アノテーション作業を実行した結果を保存したい場合は SaveAnnotationFile メソッドでアノテーション情報を保存するか、 DrawEditedObjectsToImage メソッドでオブジェクトをラスタライズしてラスタイメージとして保存してください。 - ※イメージの表示サイズがコントロールより大きい場合に、直線・矩形・楕円・ペン・テキスト入力用矩形 の各描画と、移動、変形、範囲選択のマウスドラッグ中にコントロール外にマウスを移動すると、イメージはマウスの動きに合わせてオートスクロールします。
- ※コンテキストメニューの詳しい内容については、 ContextMenuEnabled プロパティのページをご覧ください。
これらの編集・アノテーション機能の実際の使い方については、付属の「EditByMethod」、「EditToolBar」、「EditToolBarInMDIForm」サンプルもご参照ください。