JavaFX 8-Screen.getVisualBounds()包含任务栏

时间:2019-01-12 18:21:24

标签: javafx javafx-8

我正在最大化窗口中添加Canvas,并将其高度设置为从getVisualBounds()得到的高度,但是我认为画布的一部分实际上位于任务栏的后面。 / p>

double canvasWidth = Screen.getPrimary().getVisualBounds().getWidth() * 0.80;
double canvasHeight = Screen.getPrimary().getVisualBounds().getHeight();
canvas = new Canvas(canvasWidth, canvasHeight);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.BLACK);
gc.fillRect(0, 0, canvasWidth, canvasHeight);
gc.setFill(Color.RED);
gc.fillRect(0, canvasHeight-30, canvasWidth, 30);
gc.fillRect(0, 0, canvasWidth, 30);
root.setCenter(canvas);

为了使其可见,我在画布的顶部和底部添加了一个30px的红色条。您可以看到,在底部仅显示了一小部分,因为其余部分隐藏在任务栏的后面。

screenshot

我正在使用Windows10。如何解决此问题(不隐藏任务栏)?除了getVisualBounds()之外,还有其他我应该使用的东西吗? 还是我必须手动找出任务栏的大小和位置?如果可以,怎么办?

0 个答案:

没有答案