相对于 window 的标题栏定位 Canvas

Positioning Canvas in relation to the title bar of the window

我有一个图形上下文:

gc.strokeText(String.format("%d",test), 0, 0);

我把这个添加到舞台上是这样的:

p.getChildren().addAll(canvas);

我得到这个结果:

我能做什么,或者有什么方法可以防止 canvas 从标题栏后面开始? (我可以通过设置起始位置 x、y 来做到这一点,但这似乎是一个 oncomfortabel 解决方案)

有没有办法设置标题栏正下方的canvas,不管这个标题栏有多高

谢谢

场景及其包含的 canvas 位于标题栏的正下方。问题是您在 canvas.

中定位文本的方式

文本根据提供的坐标和 GraphicsContexttextAlign 属性 的当前值定位在 canvas 中(这决定了如何 x 坐标)和 textBaseline 属性(决定如何使用 y 坐标)。请参阅 documentation.

中属性 table 的“文本属性”部分

默认的textBaseline属性是VPos.BASELINE,这意味着文本的baseline将与提供的[=38]定位=],在你的例子中是 0。因此,文本基线将位于 0(canvas 的顶部),并且大部分文本(除任何下行部分外的所有内容)将位于 canvas 的顶部之上,而不是可见。

要将文本的 top 定位在 y-coordinate 0,请将 textBaseline 设置为 TOP

gc.setTextBaseline(VPos.TOP);
gc.strokeText(String.format("%d",test), 0, 0);