2

我正在为我的应用程序使用 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);    
}
4

3 回答 3

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);
}
于 2012-09-02T04:26:13.273 回答
1

为什么不简单地使用Form.Location属性。

增加或减少它的相对值来达到你想要的滑动动画效果。

于 2012-08-31T12:19:17.947 回答
1

这个库也许可以做你想做的事。

来自站点的示例代码,在您的情况下,可以放置在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;
于 2012-08-31T13:36:48.590 回答