我正在为我的应用程序使用Windows窗体。我在点击面板上加载另一个表单。现在我想显示打开和关闭表单的滑动效果。我可以在打开时添加负滑动效果,因为表单通过重载形式的OnLoad事件从右向左打开。但是我无法使用AnimateWindow函数隐藏具有正幻灯片效果的表单。有没有办法做到这一点?
这是我用来显示表格的内容:
protected override void OnLoad(System.EventArgs e)
{
NativeMethods.AnimateWindow(this.Handle, 500,
AW_ACTIVATE | AW_SLIDE | AW_HOR_NEGATIVE);
base.OnLoad(e);
}
答案 0 :(得分:2)
使用现有模式 - OnClosing + AW_HIDE反向执行。
protected override void OnClosing(CancelEventArgs e)
{
AnimateWindow(this.Handle, 500, AW_ACTIVATE | AW_SLIDE | AW_HOR_NEGATIVE | AW_HIDE);
base.OnClosing(e);
}
答案 1 :(得分:1)
为什么不使用简单的Form.Location 属性。
增加或减少它的相对值,以实现您想要的滑动动画效果。
答案 2 :(得分:1)
This库可能能够做你想做的事。
来自网站的示例代码,在您的情况下,可以放在Closing
事件中。
Transition t = new Transition(new TransitionType_EaseInEaseOut(2000));
t.add(pictureBox1, "Left", 300);
t.add(pictureBox1, "Top", 200);
t.run();
完成动画后,您可以使用TransitionCompletedEvent
事件隐藏表单。 (或者您可以为表单的Opacity
属性设置动画)
public event EventHandler<Args> TransitionCompletedEvent;