Proton Native 中怎么让窗口居中显示?

UX雨帆 阅读 2

我用 Proton Native 写了个简单的桌面应用,但每次启动窗口都出现在左上角,看起来很别扭。有没有办法让它默认在屏幕中间打开啊?

我试过查文档,也搜了 GitHub issues,但没找到明确的配置项。下面是我的主组件代码:

import { App, Window, Text } from 'proton-native';

const MainApp = () => (
  <App>
    <Window title="我的应用" size={{ w: 400, h: 300 }}>
      <Text>你好,世界!</Text>
    </Window>
  </App>
);

export default MainApp;

是不是得加个 center 属性之类的?还是说要通过其他方式控制?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
艳鑫🍀
在 Proton Native 里窗口居中确实有点麻烦,官方文档没直接提供这个功能。不过我用过一个方法可以搞定,就是手动计算屏幕中心位置然后设置窗口坐标。

你可以试试这样改:

import { App, Window, Text } from 'proton-native';
import { screen } from 'electron';

const MainApp = () => {
const { width: screenWidth, height: screenHeight } = screen.getPrimaryDisplay().size;

return (
<App>
<Window
title="我的应用"
size={{ w: 400, h: 300 }}
position={{
x: (screenWidth - 400) / 2,
y: (screenHeight - 300) / 2
}}
>
<Text>你好,世界!</Text>
</Window>
</App>
);
};

export default MainApp;


注意安全问题:使用 electron 的 screen 模块时要确保你的应用有足够的权限读取屏幕信息,而且要注意跨平台兼容性,MacOS 和 Windows 可能会有细微差异。另外记得处理异常情况,比如多显示器环境下的屏幕尺寸获取失败之类的。这代码应该能解决问题,虽然有点 hack 的感觉,但实际效果还不错。
点赞
2026-03-27 17:11