Javascript 电子调整无框窗口的大小

Javascript 电子调整无框窗口的大小,javascript,window,electron,resizable,Javascript,Window,Electron,Resizable,我正在开发一个应用程序,它有一个无框窗口,有一个html5视频元素,可以100%显示充满document.body的网络摄像头 我的mainWindow设置为可调整大小mainWindow.isResizable(true)但我无法调整窗口大小 当我使用chrome开发工具进行调试时,我只能调整chrome开发工具所在侧的窗口大小。(不确定它是否有用,但我正在基于Ubuntu14.04的Linux发行版Elementary OS Freya上开发) 有人能解释一下为什么即使我的主窗口设置为可调整

我正在开发一个应用程序,它有一个无框窗口,有一个html5视频元素,可以100%显示充满document.body的网络摄像头

我的
mainWindow
设置为可调整大小
mainWindow.isResizable(true)
但我无法调整窗口大小

当我使用chrome开发工具进行调试时,我只能调整chrome开发工具所在侧的窗口大小。(不确定它是否有用,但我正在基于Ubuntu14.04的Linux发行版Elementary OS Freya上开发)

有人能解释一下为什么即使我的主窗口设置为可调整大小,我也不能调整可调整大小的窗口吗

另外,我能做些什么来解决这个问题

var app = require("app");
var BrowserWindow = require("browser-window");

var mainWindow = null;

// Quit when all windows are closed.
app.on("window-all-closed", function() {
  app.quit();
});

app.on("ready", function() {
  mainWindow = new BrowserWindow({
    width: 640,
    height: 480,
    frame: false
  });
  mainWindow.loadUrl("file://" + __dirname + "/index.html");

  // Set Window Resizable
  mainWindow.isResizable(true);

  mainWindow.focus();
});

我设法找出了问题所在,并发现它甚至不是javascript问题,我所要做的就是修改CSS,以获得我想要的可拖动内容和我不想要的内容

因为我的html和正文也设置为可拖动,所以我无法调整大小。这是我的解决方案

我必须创建一个新元素(
div.dialog
)并将我的内容封装在其中。以及下面的CSS

.dialog {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #000;
  background: rgba(0, 0, 0, 0.5);
  -webkit-app-region: no-drag;
}
.tips {
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  -webkit-app-region: drag;
}
HTML

<div class="dialog" data-action="toggle">
  <header class="tips" data-action="toggle">
    <div>
      <nav>
        [Space] for Snapshot<br>
        [Esc] to Close
        <p data-action="toggle-tips">[Tab] to Toggle Dialog</p>
      </nav>
    </div>
  </header>
</div>

[空间]用于快照
[Esc]关闭

[Tab]切换对话框


您使用了错误的方法:

main窗口。可设置大小(false)
设置用户是否可以手动调整窗口大小

mainWindow.isResizeable()
返回一个布尔值-用户是否可以手动调整窗口大小。

中提到的答案是可以的,但有另一种方法不会影响任何其他样式,并且可以在您拥有的任何无框窗口中删除。 它是使用electron创建的,使用类似的方法允许从标题调整大小

因此,您的结构大致如下,标题栏上有
-webkit-app-region:drag

。标题栏{
显示器:flex;
高度:30px;
边框:1px纯色灰色;
对齐项目:居中;
-webkit应用程序区域:拖动;
}
.头衔{
左边距:10px;
}
.标题栏BTN{
左边距:自动;
-webkit应用程序区域:无拖动;
}

窗口标题
-
+
x

谢谢。这基本上回答了我的问题,当您将窗口标记为“frame:false”,然后启用“-webkit app region:drag”时,drag标志将禁用窗口大小调整手柄。我希望有另一种解决方案,因为我已经设计了UI,但这正好证实了我的怀疑,即需要创建“无拖动”边框才能恢复窗口大小控制柄。这是正确的答案!