没有合适的资源?快使用搜索试试~ 我知道了~
首页C#自定义控件背景色透明的方法
解决自定义控件不透明的方法。I struggled for ages with the problem of having controls show through a control that was painted on top of them. It seems that ControlStyles.SupportsTransparentBackColor just allowed the control to pick up the container's background colour/image and wouldn't prevent the control from hiding any controls that were underneath it. I eventually found an answer so I thought I would post it here. This code example of a Pointer class, will take an alpha-blended png in the constructor and allow all the controls behind it to show through the transparent or semi-transparent pixels in the png, even when the pointer's location is changed ...
资源详情
资源评论
资源推荐

C# 自定义控件背景色透明的方法
I struggled for ages with the problem of having controls show through a control that was painted
on top of them. It seems that ControlStyles.SupportsTransparentBackColor just allowed the
control to pick up the container's background colour/image and wouldn't prevent the control
from hiding any controls that were underneath it. I eventually found an answer so I thought I
would post it here. This code example of a Pointer class, will take an alpha-blended png in the
constructor and allow all the controls behind it to show through the transparent or semi-
transparent pixels in the png, even when the pointer's loca%on is changed ...
public class Pointer : Control
{
public Pointer(Image image)
: base()
{
Image = image;
SetStyle(ControlStyles.SupportsTransparentBackColor
| ControlStyles.UserPaint
| ControlStyles.AllPain%ngInWmPaint
| ControlStyles.Opaque, true);
BackColor = Color.Transparent;
}
protected override void OnLoca%onChanged(EventArgs e)
{
// pick up the container's surface again.
Visible = false;
Visible = true;
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
return cp;
}
}
private Image image;
public Image Image
{
get
{












安全验证
文档复制为VIP权益,开通VIP直接复制

评论12