簡體   English   中英

如何將 window 安裝到其內容並將其置於 Sciter 的屏幕中央?

[英]How to fit a window to its contents and center it on the screen in Sciter?

第一次嘗試 GUI 軟件時,我要做的第一件事是將 window 居中並使其適合其內容。 我個人認為這應該盡可能簡單,並且最好在官方文檔中進行解釋。

在我看來,將一個程序的主要 window 在屏幕上居中的能力是任何 GUI 庫的一個非常基本的要求。

但是,我無法在官方文檔中找到這些說明。

我不記得我在哪里找到了作者的說明,但這里是使用 TIScript 的“香草”Sciter:

const w = self.intrinsicWidthMax();
const h = self.intrinsicHeight();
const (sw, sh) = view.screenBox(#frame, #dimension);
view.move((sw / 2) - (w / 2), (sh / 2) - (h / 2), w, h, true);

#frame在這里指的是整個屏幕或監視器。 #dimension指定應返回其widthheight (還有其他符號用於返回屏幕某些方面的坐標)。

view.move是一個不幸命名的重載方法,因為除了移動它之外,它還允許調整 window 的大小。 最后一個 boolean 參數指定 window 幀和標題的大小是否應被視為總 window 大小的一部分。

在官方示例中,建議將其放在function self.ready() {... }中,但將其放在主腳本文件的頂部沒有遇到任何問題。

這是 Sciter.JS 的 JavaScript 端口:

// https://github.com/c-smile/sciter-js-sdk/discussions/39#discussioncomment-377697
const [ _, w ] = document.state.contentWidths();
const h = document.state.contentHeight(w);
const [ sw, sh ] = Window.this.screenBox('frame', 'dimension');
Window.this.move((sw - w) / 2, (sh - h) / 2, w, h, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM