2012-01-21 31 views
0

画像を画像ボックスに移動しようとしています。私は自分のアプリケーションにパネルを追加し、パネルに画像ボックスも追加しました。私はイメージを開いた。イメージのサイズが大きい場合。私はイメージの特定の部分を見たい。どのように画像の特定の部分を見るために(スクロールバーを使用せずに)画像を上下に移動できますか?マウスイベントを使用して画像ボックス内の画像を移動する方法

+0

ピクチャボックスはイメージを簡単にパンすることはできませんでした。代わりにPictureBoxを移動し、Locationプロパティを変更します。 –

+0

C#でアプリケーションを書くだけで、 'csharp'というフレーズを含むタグは使用しないでください。必要なタグだけを使用してください。ありがとうございました。 – abatishchev

答えて

1

左に移動、右に移動、上に移動、関連付けられたアクションで下に移動して画像を画像ボックス内に移動するなどのコントロールを追加できます。画像を右に動かす方法の例を以下に示します。これらのアクションは、マウスダウンイベントとマウスアップイベントを実装して、ユーザが適切なボタンを押して、必要に応じてピクチャを移動させることができます。また、画像の最大サイズに達すると、矩形領域を画像境界内の領域に変更することができます。

int ff = 0; //number of positions to move 
Bitmap b2; 
private void button1_Click(object sender, EventArgs e) 
{ 
    if (ff == 0) { b2 = new Bitmap(pictureBox1.Image);} //original image as bitmap b2 
    Bitmap b1 = new Bitmap(pictureBox1 .Width ,pictureBox1.Height); //new bitmap with rectangular region of original image 
    Rectangle r1 = new Rectangle(ff++, 0, pictureBox1.Width, pictureBox1.Height); 
    Graphics g = Graphics.FromImage(b1); 
    g.DrawImage(b2, 0, 0, r1, GraphicsUnit.Pixel); 
    g.Dispose(); 
    pictureBox1.Image = null; 
    pictureBox1.Image = (Image)b1; 
    pictureBox1.Refresh(); 
} 
0

あなたの質問に本当に答えるかどうかはわかりませんが、これはReactive Extensions (Rx)で遊ぶのが楽しい理由のようです。 This videoは、マウス入力などの非同期イベントでこのようなことがうまくいかにうまく機能するかを実証しています。

関連する問題