透明面板C#的淡入效果

时间:2016-08-03 01:38:17

标签: c# winforms

我有一个表单,在该表单上有一个菜单栏(带有' Run'按钮),4个按钮和一个pictureBox(仅作为例子)。除了这些控件之外,还有一个支持不透明度的自定义面板。

Original form before clicking 'Run'

我想要实现的是当我点击“运行”时自定义面板会淡入,如下图所示

Form after click 'Run'

然而,面板不会显示褪色效果,而是闪烁或只是出现。如果我将一些控件放到面板上,那么淡入效果显然会变得更糟。我只是需要知道它为什么不能正确渲染,或者更确切地说有更好的方法吗?

*面板的不透明度介于0 - 100之间。

 public Form1()
 {
     InitializeComponent();
     transparentPanel1.Opacity = 0;
     transparentPanel1.Hide()        
 }

 private void runToolStripMenuItem_Click(object sender, EventArgs e)
 {
     transparentPanel1.Show();
     for (int i = 0; i < 50; i += 10)
     {
         transparentPanel1.Opacity = i;
         transparentPanel1.Refresh();
         this.Refresh();
         System.Threading.Thread.Sleep(100);
     }
 }

0 个答案:

没有答案