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