我有一个带有图像的标准图片框控件。我想添加半透明层。它不会隐藏图像,它将是某种过滤器。
我该怎么做?
答案 0 :(得分:1)
代码与此类似:
private void pictureBox1_Paint (object sender, PaintEventArgs e)
{
using (SolidBrush b = new SolidBrush(Color.FromArgb(128, Color.White))
{
e.Graphics.FillRectangle (b, 0, 0, pictureBox1.Width, pictureBox1.Height);
}
但是,上面的代码只使用单个颜色画笔,其不透明度设置为128.还有其他画笔类可用,例如LinearGradientBrush
,TextureBrush
,PAthGradientBrush
和{{ 1}}。
<强>建议强> 要绘制您想要的自定义效果(对于按钮按下状态),建议的方法是生成预渲染图像,您可以在应用程序的运行时创建或使用外部程序(如Adobe Photoshop)创建,然后保存这些图像。
然后绘画代码将简单地采用代表“按钮”当前状态的图像,并在覆盖HatchBrush
方法中绘制该图像。
这种技术可以提供更好的图形绘制性能,而不是简单地在应用程序中的不同状态更改时重新绘制相同的状态。
答案 1 :(得分:0)
您可以注册Paint事件并编写如下代码:
private void pictureBox1_Paint (object sender, PaintEventArgs e)
{
e.Graphics.FillRectangle (Brushes.Transparent, 0, 0, pictureBox1.Width, pictureBox1.Height);
}
你需要生成一个半透明的刷子(改变所需颜色的alpa级别)
有关控件中自定义绘制的更多信息,请参阅MSDN
这只是一个小代码段。要正确使用Print事件和Graphics对象,请首先阅读MSDN内容。