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

如何设置Windows桌面Flutter应用的窗口尺寸?

Windows桌面Flutter应用窗口尺寸设置及边框贴合问题解决

方法一:用window_manager包(推荐)

这是最便捷的Flutter端解决方案,无需修改原生代码:

  1. 在pubspec.yaml添加依赖:
dependencies:
  window_manager: ^0.3.0

执行flutter pub get安装依赖。

  1. 在main.dart中初始化并配置窗口:
import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await windowManager.ensureInitialized();

  // 配置窗口参数
  WindowOptions windowOptions = WindowOptions(
    size: const Size(1280, 720), // 自定义窗口尺寸
    minimumSize: const Size(800, 600), // 可选:设置窗口最小尺寸
    position: const Offset(0, 0), // 窗口左上角定位到桌面原点,解决左侧不贴合问题
    title: "你的应用名称",
    center: false, // 关闭居中,让position设置生效
  );

  windowManager.waitUntilReadyToShow(windowOptions, () async {
    await windowManager.show();
    await windowManager.focus();
  });

  runApp(const MyApp());
}

// 你的应用主体代码示例
class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const Scaffold(body: Center(child: Text('Hello World'))),
    );
  }
}

方法二:修改Windows原生代码

不想用第三方包的话,直接修改Windows平台代码:

  1. 打开项目根目录下的windows/runner/main.cpp文件
  2. 找到FlutterWindow::OnCreate方法里的CreateWindow调用,调整窗口的起始坐标和尺寸:
HWND window = CreateWindow(
  window_class, title.c_str(), WS_OVERLAPPEDWINDOW,
  0, 0, // 将x、y设为0,让窗口左上角贴合桌面边框
  1280, 720, // 自定义窗口宽高
  nullptr, nullptr, GetModuleHandle(nullptr), this
);

如果设置后仍有间距,可在窗口创建后添加以下代码强制调整位置:

SetWindowPos(window, nullptr, 0, 0, 1280, 720, SWP_NOZORDER | SWP_SHOWWINDOW);

修改完成后重新编译运行Windows应用即可。

额外提示

  • 如果需要允许用户拖动调整窗口大小,方法一中保持resizable: true(默认开启),方法二中保留WS_OVERLAPPEDWINDOW样式即可。
  • 若要设置窗口为全屏,方法一中可添加fullScreen: true到WindowOptions。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:49:57