前回のつづきです。

ピクチャーボックスにスクロールバーをつけてドラッグでトリミングもできるようにする

大きな画像を表示させるためにピクチャーボックスには縮小された画像を表示する場合があります。そのときもドラッグアンドドロップで選択範囲を指定できるようにします。

拡大率は英語でExpansionrate。そこでこれをプロパティ名にしています。またBitmapというプロパティでは実寸サイズのBitmapなのか拡大縮小されたあとのBitmapなのかわかりにくいので、実寸サイズのBitmapであることがわかるようにFullScaleBitmapという名前に変更します。

変更箇所は以下のとおりです。

FullScaleBitmapのサイズにExpansionrateを掛け合わせたものがピクチャーボックスに描画されるサイズです。またExpansionrateプロパティが変更されたら同じBitmapを表示するときでもピクチャーボックスに描画するものを変更しなければなりません。それからドラッグアンドドロップ(実際にはDragOverやDragDropイベントは使っていない)で範囲の指定をしたときにトリミングされたBitmapを取得する処理を変更しています。

それからFullScaleBitmapが変更されたときにイベントで知らせてくれるとありがたいですね。FullScaleBitmapプロパティが変更されたらFullScaleBitmapChangedというイベントを発生させます。

イベントハンドラFullScaleBitmapChangedHandlerの引数で使われているFullScaleBitmapChangedArgsは以下のようになっています。