You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#无边框窗体如何实现标准窗口最大化动画?

WinForms窗口最大化动画实现方案

直接设置WindowState = FormWindowState.Maximized没法触发系统标准的最大化动画——这是因为这种方式是直接切换窗口状态,跳过了系统内置的动画流程。

要实现和手动点击最大化按钮完全一致的动画效果,得通过Windows API模拟系统的最大化指令:

步骤1:引入API声明

在你的Form类里添加以下代码:

using System.Runtime.InteropServices;

public partial class YourForm : Form
{
    private const int WM_SYSCOMMAND = 0x0112;
    private const int SC_MAXIMIZE = 0xF030;

    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
}

步骤2:触发最大化动画

在需要执行最大化的逻辑处调用:

SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_MAXIMIZE, IntPtr.Zero);

这样就能让窗口按照系统默认的动画平滑最大化,和用户手动操作的体验完全一致。


内容的提问来源于stack exchange,提问作者DALVES2012

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:21:07