gpt4 book ai didi

reactjs - Electron setSize方法和ReactJS

转载 作者:行者123 更新时间:2023-12-03 12:25:53 24 4
gpt4 key购买 nike

我从 Electron 上取下了框架,并添加了用于折叠,闭合和最大化/最小化的自定义按钮。

折叠和合拢效果很好,但最小化/最大化会使眨眼并返回全屏
const [bounds, setBounds] = useState({width: 600, height: 600, x: 50, y: 50})是默认范围

useEffect(() => {
if (maximized) {
remote.BrowserWindow.getFocusedWindow().maximize()
} else {
//here is a problem
remote.BrowserWindow.getFocusedWindow().setBounds(bounds)
}
}, [bounds, bounds.height, bounds.width, maximized])

如何正确调整窗口大小?我也尝试过 remote.BrowserWindow.getFocusedWindow().setSize()

最佳答案

创建一个透明的窗口,像这样放置一个全屏=否

const mainWindow = new BrowserWindow({
width: customWidth,
height: CustomHeight,
x: positionMarginX,
y: positionMarginY,
skipTaskbar: process.platform !== 'darwin',
fullscreenable: false,
frame: false,
resizable: false,
hasShadow: false,
transparent: true,
minimizable: false,
maximizable: false,
darkTheme: true,
closable: false,
titleBarStyle: 'customButtonsOnHover',
webPreferences: {
webSecurity: false,
nodeIntegration: true,
},
})


并在 react 端这样使用IPC渲染

 ipcRenderer.send(
'window-resize',
300, // height
300 // width
)


然后使用IPC main这样处理该事件

ipcMain.on('window-resize', (e,height, width) => {
windowSize = {
width: width,
height: height,
x: customX,
y: customY,
}
mainWindow.setBounds(windowSize)
})


如果您使用自定义控件,则请遵循以下网址
Frameless window with controls in electron (Windows)

关于reactjs - Electron setSize方法和ReactJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58787468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com