fix: 全屏展示问题
This commit is contained in:
@@ -14,6 +14,10 @@ import javafx.scene.text.FontWeight;
|
||||
* 绘图Canvas组件,用于渲染和交互所有可绘制对象
|
||||
*/
|
||||
public class DrawingCanvas extends Pane {
|
||||
// 页面标准尺寸(与全屏播放保持一致)
|
||||
public static final double PAGE_WIDTH = 1024;
|
||||
public static final double PAGE_HEIGHT = 768;
|
||||
|
||||
// 缩放点的枚举
|
||||
enum ResizePoint {
|
||||
TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, NONE
|
||||
@@ -32,7 +36,7 @@ public class DrawingCanvas extends Pane {
|
||||
|
||||
public DrawingCanvas(PageContent pageContent) {
|
||||
this.pageContent = pageContent;
|
||||
this.canvas = new Canvas();
|
||||
this.canvas = new Canvas(PAGE_WIDTH, PAGE_HEIGHT);
|
||||
|
||||
getChildren().add(canvas);
|
||||
|
||||
@@ -41,18 +45,11 @@ public class DrawingCanvas extends Pane {
|
||||
setOnMouseDragged(this::handleMouseDragged);
|
||||
setOnMouseReleased(this::handleMouseReleased);
|
||||
|
||||
|
||||
setStyle("-fx-border-color: #e0e0e0; -fx-border-width: 1;");
|
||||
|
||||
// 绑定Canvas大小到Pane大小
|
||||
widthProperty().addListener((obs, oldVal, newVal) -> {
|
||||
canvas.setWidth(newVal.doubleValue());
|
||||
redraw();
|
||||
});
|
||||
heightProperty().addListener((obs, oldVal, newVal) -> {
|
||||
canvas.setHeight(newVal.doubleValue());
|
||||
redraw();
|
||||
});
|
||||
// 设置Pane的首选大小为页面尺寸,这样编辑界面显示时会按页面比例显示
|
||||
setPrefWidth(PAGE_WIDTH);
|
||||
setPrefHeight(PAGE_HEIGHT);
|
||||
|
||||
// 初始绘制
|
||||
redraw();
|
||||
|
||||
@@ -38,10 +38,9 @@ public class PresentationWindow {
|
||||
}
|
||||
|
||||
private void initializeStage() {
|
||||
// 页面标准宽高比 (4:3)
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double ASPECT_RATIO = PAGE_WIDTH / PAGE_HEIGHT; // 4:3 = 1.333...
|
||||
// 页面标准宽高比 (4:3) - 使用与编辑界面相同的尺寸
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH; // 1024
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT; // 768
|
||||
|
||||
// 设置全屏,获取屏幕分辨率
|
||||
stage.setFullScreen(true);
|
||||
@@ -209,8 +208,8 @@ public class PresentationWindow {
|
||||
double canvasWidth = canvas.getWidth();
|
||||
double canvasHeight = canvas.getHeight();
|
||||
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH;
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT;
|
||||
|
||||
double scaleX = canvasWidth / PAGE_WIDTH;
|
||||
double scaleY = canvasHeight / PAGE_HEIGHT;
|
||||
@@ -287,8 +286,8 @@ public class PresentationWindow {
|
||||
double canvasWidth = canvas.getWidth();
|
||||
double canvasHeight = canvas.getHeight();
|
||||
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH;
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT;
|
||||
|
||||
double scaleX = canvasWidth / PAGE_WIDTH;
|
||||
double scaleY = canvasHeight / PAGE_HEIGHT;
|
||||
@@ -377,8 +376,8 @@ public class PresentationWindow {
|
||||
double canvasWidth = canvas.getWidth();
|
||||
double canvasHeight = canvas.getHeight();
|
||||
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH;
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT;
|
||||
|
||||
double scaleX = canvasWidth / PAGE_WIDTH;
|
||||
double scaleY = canvasHeight / PAGE_HEIGHT;
|
||||
@@ -473,8 +472,8 @@ public class PresentationWindow {
|
||||
double canvasWidth = canvas.getWidth();
|
||||
double canvasHeight = canvas.getHeight();
|
||||
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH;
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT;
|
||||
|
||||
double scaleX = canvasWidth / PAGE_WIDTH;
|
||||
double scaleY = canvasHeight / PAGE_HEIGHT;
|
||||
@@ -525,8 +524,8 @@ public class PresentationWindow {
|
||||
double canvasHeight = canvas.getHeight();
|
||||
|
||||
// 页面标准宽高比
|
||||
final double PAGE_WIDTH = 1024;
|
||||
final double PAGE_HEIGHT = 768;
|
||||
final double PAGE_WIDTH = DrawingCanvas.PAGE_WIDTH;
|
||||
final double PAGE_HEIGHT = DrawingCanvas.PAGE_HEIGHT;
|
||||
|
||||
// 计算缩放因子,保持宽高比
|
||||
double scaleX = canvasWidth / PAGE_WIDTH;
|
||||
|
||||
Reference in New Issue
Block a user