【问题标题】:How to draw a line in Blazor?如何在 Blazor 中画一条线?
【发布时间】:2020-03-08 14:12:48
【问题描述】:

从字面上看,如何在 Blazor 中画一条线?我在 GitHub 上看到了 this project,它是 HTML 画布的包装器,我还看到了 this questionthis article 等,它们似乎通过 JavaScript 调用以在画布上绘图,因此它基本上执行为纯JS代码。

我想知道是否有另一种方法来绘制线条和创建动画,如在 Blazor 中应该具有接近原生性能。

是否有 HTML 画布的替代方案并继续包装 JS 调用以创建像动画这样的画线,就像官方支持这种功能的东西一样?

【问题讨论】:

    标签: javascript canvas graphics blazor webassembly


    【解决方案1】:

    不,目前没有其他选择,Blazor 中没有为此内置任何内容。

    Blazor 使用 Web 技术来呈现用户界面。

    即使 Blazor 会提供一种内置方式来绘制内容,这也只不过是基于 canvas 或 WebGL 的一个自以为是的 API。

    尽管如此,我希望团队有一天会决定创建这样一个内置 API 用于在画布上绘图。这些绘图功能将使 Blazor 对许多用户更具吸引力。看看 p5js 的巨大成功以及 p5js 为 javascript 社区带来的新程序员的数量。

    我认为 Blazor 团队承担这样一个任务的机会非常低,他们可能希望社区能够这样做。但是,从 MS 获得出色的 Windows 图形渲染库的机会也很低,我们让 Shawn Hargreaves 创建了很棒的 Win2D 库。所以让我们保持手指交叉!

    【讨论】:

    • 我真的希望有一天有人会编辑这个答案,说有另一种方式,MS 甚至社区构建了一个集成在 Blazor 中的图形 API,但在那之前,我们将使用我们拥有的.
    • 这是 WebAssembly 技术的基本限制。 WebAssembly 没有为此提供 API,因此需要 JavaScript。无论您获得何种抽象,最终结果都将是基于 JavaScript 的,直到 WebAssembly 获得可直接访问的 API。这不是“Blazor 问题”。
    • @EdCharbeneau 你确定 WASM 不能在页面上呈现吗?我正在研究Skia CanvasKit,它看起来很有希望。
    • @Amir “WebGL 上下文封装为 SkSurface,允许直接绘制到 HTML 画布”。 WebGL 是一个 JavaScript API,因此......“无论你给出什么抽象,最终结果都是 JavaScript”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2016-05-08
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多