2011-07-12 18 views
2

私はプログラムによって生成された固定サイズの画像(256x256)を持つ画像ボックスを持っています。私はもう一つの小さなイメージをリソースとして持っています。私がしたいのは、カーソルが画像の上にあり、マウスボタンを押したままにして、小さな画像がマウスポインタで「アンカー」されて、それが動き回るときです。マウスボタンを放すと、小さな画像は大きな画像の上にその位置にとどまります。小さな画像は、基本的にXやOのようなマーカーです。C#画像上の画像

最初の画像ボックスの上に2番目の画像ボックスがあると思っていましたが、透明にすることはできません。または、画像を小さな画像で上書きして再描画し、画像をピクチャボックスにリロードする方法はわかりませんが、マウスを動かすたびにそれを再描画するのがかなり遅くなると思います。

どうすれば大きな画像の上にマーカー画像を移動してそこに留まらせることができますか?

+0

私はカスタムソリューションのこの種を持つためにあなたはスタンダールのコントロールを使用しないでください怖いと独自の描画スタイルで自分自身を実装します。 – Tigran

答えて

2

PictureBoxの代わりにこれに対してコントロールを作成します。 PictureBoxは、フォーム上の固定画像にのみ使用する必要があります。

代わりにUserControlからコントロールを取得してください。ダブルバッファリングをオンにします。 OnPaintメソッドでは、まず背景画像を描画し、その後マーカー画像を描画します。心配する必要はありません、それは遅くなることはありませんし、それは必要に応じて動作します。

マウスを離したら、マーカー画像を描画して背景画像を更新します。

ここで、すべての文章は、それ自体ではほとんど発見されているので、あなたは少しゲームをコーディング良い時間を持っていただければ幸いです:)