3

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

4

2 回答 2

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

}

希望能帮助到你

于 2012-08-21T10:14:51.653 回答
0

试试这个:单击一个控件并使其变暗

在选定的答案中,不是获取每个像素并对其进行着色,而是取一部分图片并对其进行着色。希望能帮助到你。

于 2012-08-21T10:09:53.743 回答