アプリケーションの実行時にピクチャ ボックス コントロールで画像の特定の部分を強調表示したいのですが、C# を使用してこれを実装するにはどうすればよいですか?
質問する
4667 次
2 に答える
1
ユーザーが画像の上にマウスを移動すると、画像ボックスの上にアルファ四角形を描画する例があります。必要に応じて画像を強調表示できることに注意してください。
public partial class Form2 : Form
{
private Rectangle mHoverRectangle = Rectangle.Empty;
private const int HOVER_RECTANGLE_SIZE = 20;
public Form2()
{
InitializeComponent();
pictureBox.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
pictureBox.Paint += new PaintEventHandler(pictureBox_Paint);
pictureBox.MouseLeave += new EventHandler(pictureBox_MouseLeave);
}
void pictureBox_MouseLeave(object sender, EventArgs e)
{
mHoverRectangle = Rectangle.Empty;
}
void pictureBox_Paint(object sender, PaintEventArgs e)
{
if (mHoverRectangle != Rectangle.Empty)
{
using (Brush b = new SolidBrush(Color.FromArgb(150, Color.White)))
{
e.Graphics.FillRectangle(b, mHoverRectangle);
}
}
}
void pictureBox_MouseMove(object sender, MouseEventArgs e)
{
mHoverRectangle = new Rectangle(
e.Location.X - HOVER_RECTANGLE_SIZE / 2,
e.Location.Y - HOVER_RECTANGLE_SIZE / 2,
HOVER_RECTANGLE_SIZE,
HOVER_RECTANGLE_SIZE);
pictureBox.Invalidate();
}
}
それが役に立てば幸い
于 2012-08-21T10:14:51.653 に答える
0
これを試してください:コントロールをクリックしてシェーディングする
選択した回答では、各ピクセルを取得してシェーディングするのではなく、画像の一部を取得してシェーディングします。それが役に立てば幸い。
于 2012-08-21T10:09:53.743 に答える