2013-02-06 30 views
2

我正在尝试为控件(面板)块创建分解动画。我确实有一个面板,只有几个标签和几个纯色背景上的图片框(石灰)。我试图让这个面板溶解(与所有标签和图片)到石灰背景。任何想法如何完成?我愿意接受任何建议。谢谢。C# - Windows窗体,为面板控制分解动画

+0

您需要哪些帮助?你想摆脱你正在消失的组件吗?或者你只是想隐藏它们吗?这是父对象对孩子做的事情还是对象对自己做的事情? –

+0

我只想隐藏面板和面板内的所有组件。如果面板具有不透明度属性,我只需创建一个计时器来降低不透明度值。 – Safiron

回答

0

不幸的是,控件中没有Opacity属性,比如Forms.Panel。 该想到仿效它的唯一办法,就是要逐步改变背景色的控制之一,以便具有alpha通道设定值(例如,使用定时器):

int opacity = 25; 

myPanel.BackColor = Color.FromArgb(opacity, myPanel.BackColor); 
myLabel.BackColor = Color.FromArgb(opacity, myLabel.BackColor); 

不幸的是,某些控制将不会反应如预期的那样(例如Button)。 此外,更改ForeColor并不那么容易(重写OnPaint方法的镂空控件可能在某些情况下有效)

+0

谢谢,但如果面板有背景图像呢? – Safiron

+0

窗体确实有影响其子项的不透明属性。您可以尝试在彼此顶部堆叠表单,而不是使用Panel,并使其“像表面”一样成为Panel。以下是一些示例:http://social.msdn.microsoft.com/forums/en-US/winforms/thread/3087655c-bd50-4408-9c55-dd179e442675/ – Arie