如何在图片框控件中突出显示图像的特定部分

时间:2012-08-21 09:59:54

标签: c# vb.net c#-4.0 c#-3.0

我想在应用程序的运行时间中在图片框控件中突出显示图像的特定部分。如何使用c#实现这一部分?

2 个答案:

答案 0 :(得分:1)

这里有一个例子,当用户将鼠标悬停在图像上时,将一个alpha矩形悬停在图片框上。请注意,您可以根据需要突出显示图片。

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();
    }

}

希望有所帮助

答案 1 :(得分:0)

试试这个:Clicking a control and causing it to shade

在选定的答案中,不是获取每个像素并对其进行着色,请拍摄照片的一部分并将其遮挡。希望它有所帮助。