C# 使用透明背景色设置用户控件的动画不会刷新背景色
我正在尝试设置一个具有透明背景色的用户控件的动画。 设置动画(即在垂直方向上上下移动控件)时,用户控件的背景色不会刷新 我已将控件放置在picturebox的顶部,然后对其设置动画。picturebox的底色为gradeitn颜色,底色从红色到蓝色。用户控件上也有traingle形状 在windows操作系统上,代码是用C#编写的 我尝试了很多选择,但仍然面临相同的问题。下面是代码:C# 使用透明背景色设置用户控件的动画不会刷新背景色,c#,.net,winforms,user-controls,C#,.net,Winforms,User Controls,我正在尝试设置一个具有透明背景色的用户控件的动画。 设置动画(即在垂直方向上上下移动控件)时,用户控件的背景色不会刷新 我已将控件放置在picturebox的顶部,然后对其设置动画。picturebox的底色为gradeitn颜色,底色从红色到蓝色。用户控件上也有traingle形状 在windows操作系统上,代码是用C#编写的 我尝试了很多选择,但仍然面临相同的问题。下面是代码: namespace AC { public partial class MyTriangle: User
namespace AC
{
public partial class MyTriangle: UserControl
{
public MyTriangle()
{
InitializeComponent();
DefaultSettings();
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;
}
/// <summary>
/// Method for Transparent background
/// </summary>
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20;
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
}
protected void InvalidateEx()
{
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e)
{
//base.OnPaint(e);
}
}
}
名称空间AC
{
公共部分类MyTriangle:UserControl
{
公共MyTriangle()
{
初始化组件();
默认设置();
this.SetStyle(ControlStyles.SupportsTransparentBackColor,true);
this.BackColor=Color.Transparent;
}
///
///透明背景检测方法
///
受保护的重写CreateParams CreateParams
{
得到
{
CreateParams cp=base.CreateParams;
cp.ExStyle |=0x20;
返回cp;
}
}
PaintBackground上受保护的覆盖无效(PaintEventArgs e)
{
}
受保护的void InvalidateEx()
{
这个。使无效();
}
受保护的覆盖无效OnPaint(PaintEventArgs e)
{
//基础漆(e);
}
}
}
我相信我们需要做的任何改变都只是int用户控制。
请参阅随附的traingle形状(tmp.png)和picturebox颜色(tmp1.png)![在此输入图像描述][1]以供参考。![在此处输入图像描述][2]
谢谢如果您需要
丰富的
UI功能,如动画
和透明度
,我强烈建议使用WPF。winforms实际上不支持这些。请修复问题中的图像。你知道吗?否则,您可能会在一次绘制整个动画这一常见错误上举步维艰(这样,除非使用Refresh()
,包括后面的内容,否则无法正确地重新绘制任何内容)。将其拆分为帧,使用定时器,win。当前无法附加图像。我现在只需要使用Winforms而不是wpf。