我想在应用程序的运行时突出显示图片框控件中图像的特定部分。如何使用 c# 实现这个?
问问题
4667 次
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 回答