3

アプリケーションの実行時にピクチャ ボックス コントロールで画像の特定の部分を強調表示したいのですが、C# を使用してこれを実装するにはどうすればよいですか?

4

2 に答える 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 に答える