如何禁用Aero编程下的“打开”窗口animation?
当打开一个新的窗体时,它会“popup”(淡入淡出+轻微缩放转换)。 我想停止这个animation,并立即显示窗口。
我已经尝试将窗体的位置属性设置为离屏,然后调用Show(),然后将其移动到正确的位置。 但是这并没有帮助,animation将继续。
也许有一些我可以设置的隐藏的属性?
我不想全局禁用打开/closures/最小化/最大化animation! 我只是想跳过窗口的“窗口打开”animation。
我已经在Form.Show()之后直接调用了单个和多个调用ShowWindow(…)。 但是不pipe我通过什么参数,都不会中止开场animation。
我懂了! 经过一番尝试与ShowWindow,BorderStyles我发现我的确切的解决方案:
现在的技巧是“none”和“* toolwindow”边框将禁止该窗体的打开/弹出动画。 一旦表单被显示,边框被改变,赋予它原有的功能(控制栏中的图标,最小化/最大化按钮等)
编辑 :对于每个人也可能想尝试这一点,我必须指出这一点 能够 当使用PInvoke命令完成时,将会与实际的窗口大小相匹配。 如果您依赖的窗口大小是正确的,请务必在完成后调整窗口的大小。
这是Windows视觉效果的一部分,可以使用SystemParametersInfo方法进行调整。
我发现动画只在第一次显示表单时才会发生。
所以这是一个窍门:
var form = new Form(); form.Show(); form.Hide(); form.Show();
我只在Windows 8中测试过
你可以改变之前和之后的风格,就像这样,这将阻止淡出动画。
this.FormBorderStyle = FormBorderStyle.Sizable; this.Show(); // Do whatever this.FormBorderStyle = FormBorderStyle.Sizable; this.Show();