相对于 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.
中定位文本的方式
文本根据提供的坐标和 GraphicsContext
的 textAlign
属性 的当前值定位在 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);
我有一个图形上下文:
gc.strokeText(String.format("%d",test), 0, 0);
我把这个添加到舞台上是这样的:
p.getChildren().addAll(canvas);
我得到这个结果:
我能做什么,或者有什么方法可以防止 canvas 从标题栏后面开始? (我可以通过设置起始位置 x、y 来做到这一点,但这似乎是一个 oncomfortabel 解决方案)
有没有办法设置标题栏正下方的canvas,不管这个标题栏有多高
谢谢
场景及其包含的 canvas 位于标题栏的正下方。问题是您在 canvas.
中定位文本的方式文本根据提供的坐标和 GraphicsContext
的 textAlign
属性 的当前值定位在 canvas 中(这决定了如何 x
坐标)和 textBaseline
属性(决定如何使用 y
坐标)。请参阅 documentation.
默认的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);