C# 更改最小化动画

C# 更改最小化动画,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我有一个最小化到系统托盘的应用程序。这一切都很好,问题是当最小化动画时,动画会移向屏幕的左侧 是否有办法更改它,使动画进入任务栏?否。此动画由Windows处理,由于您正在调用窗口上的最小化例程,Windows将自动将窗口动画设置到任务栏上窗口按钮的位置。如果你在寻找一个“快速解决方案”,那就没有了 您所能做的最多就是更改窗口的行为,以便在最小化窗口时,它实际上会关闭。这将阻止向下飞行动画进入任务栏,Windows将执行窗口关闭动画,这可能更符合您的应用程序设计。很多其他托盘图标程序都是这样处理

我有一个最小化到系统托盘的应用程序。这一切都很好,问题是当最小化动画时,动画会移向屏幕的左侧


是否有办法更改它,使动画进入任务栏?

否。此动画由Windows处理,由于您正在调用窗口上的最小化例程,Windows将自动将窗口动画设置到任务栏上窗口按钮的位置。如果你在寻找一个“快速解决方案”,那就没有了


您所能做的最多就是更改窗口的行为,以便在最小化窗口时,它实际上会关闭。这将阻止向下飞行动画进入任务栏,Windows将执行窗口关闭动画,这可能更符合您的应用程序设计。很多其他托盘图标程序都是这样处理的


如果确实要更改窗口的动画,则需要使用自己的窗口管理功能覆盖所有窗口管理功能,这样,当窗口“最小化”(或关闭)时,可以设置窗口动画,使其显示为移动到右侧的通知区域。

@paul这是Win32/C,这是C#/WinForms。@SpikeX我知道,你可以从C#@paul调用Win32 API函数,但更好的做法是在答案中发布实现该功能所需的P/Invoke代码,而不是只链接到另一个答案而不做任何解释。;)@真的吗?我不喜欢复制粘贴问题的现有有效答案,特别是当我只是对已经存在的类似问题发表评论时。“你能做的最多的就是改变窗口的行为,这样当它最小化时,它实际上会关闭。”当你说它关闭时,你的意思是它会终止进程吗,或者只是执行关闭动画?不,它只是关闭窗口,该过程将保持活动状态(包括托盘图标)。为了实际终止进程,您需要调用类似于
Environment.Exit(0)的函数
应用程序.Exit()