我知道windows有个API能够使窗体在载入或退出时实现动画效果,比如滑动,滚动,淡入淡出等
但我做了个程序,是在一个主窗体的一个panel内载入不同的usercontrol,这样的话就实现不了载入的动画效果,导致每次按不同的按钮载入不同的界面的时候都是一闪,然后出现界面,很生硬
现在想求有没什么解决办法让载入不同的界面的时候出现一些动画的效果?
我想过用MDI程序,但是因为我的界面是用位图实现的,使用MDI的话会造成背景图显示不了求解!
但我做了个程序,是在一个主窗体的一个panel内载入不同的usercontrol,这样的话就实现不了载入的动画效果,导致每次按不同的按钮载入不同的界面的时候都是一闪,然后出现界面,很生硬
现在想求有没什么解决办法让载入不同的界面的时候出现一些动画的效果?
我想过用MDI程序,但是因为我的界面是用位图实现的,使用MDI的话会造成背景图显示不了求解!
for(double d=0.01; d< 1; d+=0.02)
{
System.Threading.Thread.Sleep(1);
Application.DoEvents();
this.Opacity=d;
this.Refresh();
}参考一下窗体的淡入淡出试试
怎么继承实现这个属性?
但能不能麻烦各位把内容看清楚再回答?
我说的是控件,不是窗体
窗体淡入淡出还需要Timer么?
直接用windows API引用一个函数就实现了
请不要再说窗体的事了
public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口
public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口
public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口
public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。
public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。
public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
public static extern bool AnimateWindow(IntPtr hwnd,int dwTime,int dwFlags); //三个参数分别是,窗体句柄,持续时间,和标志
能否请要回答的朋友看清楚问题再回答呢?API貌似只能对顶层窗口才有效,我试了
是对窗体内的控件的动画效果
而不是对于窗体
而且panel貌似没有opacity属性求高人解答