在NW.JS中约束窗口纵横比

时间:2015-08-12 15:15:10

标签: resize window node-webkit aspect-ratio

是否可以约束NW.JS应用程序中窗口的宽高比?

我的内容是800 x 600.在package.json清单中,我可以将窗口设置定义为...

html, body{
  margin: 0;
  height: 100%;
}

main {
  position: relative;

  width:100vw;
  max-width:133.3333vh; /* max-width / width = aspect ratio */
  min-width: 800px;

  height:75vw;
  max-height:100vh; /* max-height / height = aspect ratio */
  min-height: 600px;

  margin: 0 auto;
}

我使用CSS来保留内容的宽高比并尽可能地填充窗口:

window resize

但是,如果使窗口太宽,则两侧会出现空白区域。如果你的宽度太高,底部会出现一个空白区域。

是否存在强制给定宽高比的设置?

或者我现在可以收听window.resizeTo(height*1.333,height)个活动,以便我可以在更改窗口大小后立即应用 public ActionResult TestUpdate() { int id = 3; // this is the FK which exists on the Transactions table. var results = db.StoreTransactions.Find(id); if(results != null) { results.TransStatus = "Completed"; db.SaveChanges(); } }

1 个答案:

答案 0 :(得分:3)

似乎有一个resize事件:

您可以使用这样的代码来设置您的事件监听器:

gui = require('nw.gui');
w = gui.Window.get();
w.on('resize', yourFunctionHere);

但要小心改变处理程序中的窗口大小(例如使用resizeTo()),因为这将触发调整大小并可能导致各种混乱。它可能会使调整大小以当前宽高比为条件,但我可以想象,如果达到某个限制或其他限制,你仍然会遇到问题。我不知道是否有一些设施(类似于事件冒泡& c)在这种情况下会有所帮助。