【发布时间】:2011-12-09 23:37:23
【问题描述】:
我正在研究 ImageButton,我在其中绘制了此按钮(如 mouseOver、mouseDown 等)的每个状态(每个状态都有多个图像)。
我已使用此代码使控件透明:
public ImageButton()
{
InitializeComponent();
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
}
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
但是有一个问题,经过几次状态切换,边角变得尖锐难看,要解决这个问题我需要清除背景,但如果我的控件是透明的,那就不可能了。
我已经尝试过这个解决方案:Clearing the graphics of a transparent panel C# 但它很慢并且使控件闪烁。
你有什么想法如何清除这个背景并保持控制的透明度?
【问题讨论】:
-
您需要什么样的透明度?只是要显示的父背景?或者您想要其他控件和/或其他窗口的透明度?
标签: c# user-controls background transparent