はじめに
C#で「マウスで画像を移動、拡大縮小し、背景画像に重ねて表示する」機能を実装しました。パワーポイントなどのMS Officeでは当然実装されている機能です。
参考
実装手順
1. 参考1.より、ある画像に対してマウス操作*1できるようにします。サンプルコードも用意してくれていますので、それをベースにしても良いです。ただし、画像はメニューから呼び出してセットする仕様です。予め画像をセットしておきたい場合は参考3.より、画像のファイルパスを設定するようにします。
2. 参考2.より背景画像を追加し、レイヤー機能で後ろ側に配置するように設定します。また、透過処理も行います。
手順1でマウス操作できるようにした画像は、手順2ではpictureBox2 として扱います。pictureBox1が背景画像です。
pictureBox2にマウス操作を実装するため、下記のようなコードをForm初期化時に実装します。
pictureBox2はGUIレイアウト上には設置しないため、マウスホイールのようにソースコードでの設定が必要です。
//マウスイベントの追加 this.pictureBox2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox2_MouseDown); this.pictureBox2.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox2_MouseUp); this.pictureBox2.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox2_MouseMove); this.pictureBox2.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox2_MouseWheel);
おわりに
将来の自分用へのざっくり適当な開発メモです。
*1:移動、拡大縮小