使用此index.html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script data-main="main" src="require.js"></script>
</head>
<body>
<p>This is the body</p>
<canvas id="canvas1"></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
而这个main.js
console.log("main.js ran");
function render() {
console.log("render ran");
}
window.onload = render;
Run Code Online (Sandbox Code Playgroud)
我希望控制台输出显示:
main.js ran
render ran
Run Code Online (Sandbox Code Playgroud)
"main.js run"按预期显示,但"render ran"未记录.渲染函数永远不会被调用.为什么不?
可以使用DirectWrite将文本渲染到WinForm应用程序中的PictureBox吗?
我正在使用SharpDX并且已经通过DirectWrite示例试图构建我能做到的最简单的工作案例.
我创建了一个Form并且只添加了一个pictureBox.然后是以下代码.表单显示,但PictureBox没有任何可见.
任何指导都将非常感谢.
谢谢!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
//using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SharpDX.Direct2D1;
using SharpDX.DXGI;
using SharpDX;
using SharpDX.DirectWrite;
using AlphaMode = SharpDX.Direct2D1.AlphaMode;
using Factory = SharpDX.Direct2D1.Factory;
namespace d2dwTextEdit
{
public partial class Form1 : Form
{
public Factory Factory2D { get; private set; }
public SharpDX.DirectWrite.Factory FactoryDWrite { get; private set; }
public WindowRenderTarget RenderTarget2D { get; private set; }
public SolidColorBrush SceneColorBrush { get; private set; }
public …Run Code Online (Sandbox Code Playgroud) 在以下代码中,primaryScene.lookup(第30行)返回null.但是在调试模式(IntelliJ)中,我可以钻取并查看场景图中的节点.
这是一个独立的例子.没有FXML.
应用程序只绘制舞台和场景,然后尝试使用Scene.lookup选择标记为id ="drawPane"的窗格.
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import static javafx.application.Application.launch;
public class Main extends Application {
Scene primaryScene;
Pane drawPane;
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) {
primaryScene = buildUI(primaryStage);
if (primaryScene == null) throw new NullPointerException();
drawPane = (Pane)primaryScene.lookup("#drawPane");
if (drawPane == null) {
throw new NullPointerException();
}
primaryStage.show();
}
private Scene buildUI(Stage primaryStage) {
ScrollPane …Run Code Online (Sandbox Code Playgroud)