Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用透明背景色设置用户控件的动画不会刷新背景色_C#_.net_Winforms_User Controls - Fatal编程技术网

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

我正在尝试设置一个具有透明背景色的用户控件的动画。 设置动画(即在垂直方向上上下移动控件)时,用户控件的背景色不会刷新

我已将控件放置在picturebox的顶部,然后对其设置动画。picturebox的底色为gradeitn颜色,底色从红色到蓝色。用户控件上也有traingle形状

在windows操作系统上,代码是用C#编写的

我尝试了很多选择,但仍然面临相同的问题。下面是代码:

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。