You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非WASM的Blazor桌面应用(Blazor Hybrid)中集成SkiaSharp?

在Blazor Hybrid桌面应用中集成SkiaSharp(无需WASM)

当然存在这样的方案。Blazor Hybrid本质是将Blazor组件嵌入原生桌面框架(MAUI、WPF、WinForms等),完全可以通过原生平台集成SkiaSharp的方式实现,不需要依赖WASM。

核心思路

借助Blazor Hybrid与原生桌面框架的绑定能力,封装原生SkiaSharp绘图控件为Blazor组件,让SkiaSharp直接在原生桌面进程中运行,完全规避WASM的沙箱环境。

具体实现方案

1. 跨平台首选:.NET MAUI Blazor

MAUI官方支持SkiaSharp,可直接实现Windows/Mac/Linux全平台兼容:

  • 安装NuGet包:SkiaSharp.Views.Maui.Controls 和 SkiaSharp.Views.Maui
  • 创建自定义MAUI视图继承SKCanvasView,在PaintSurface事件中编写SkiaSharp绘图逻辑
  • 将原生视图封装为Blazor组件,供Blazor页面调用
  • 示例代码:
    // 原生MAUI绘图视图
    public class CustomSkiaCanvas : SKCanvasView
    {
        protected override void OnPaintSurface(SKPaintSurfaceEventArgs e)
        {
            base.OnPaintSurface(e);
            var canvas = e.Surface.Canvas;
            canvas.Clear(SKColors.White);
            
            // 示例:绘制蓝色圆形
            using var paint = new SKPaint { Color = SKColors.Blue, StrokeWidth = 4 };
            canvas.DrawCircle(150, 150, 80, paint);
        }
    }
    
    // Blazor组件封装
    public class SkiaRenderer : ComponentBase
    {
        protected override void BuildRenderTree(RenderTreeBuilder builder)
        {
            builder.OpenComponent<CustomSkiaCanvas>(0);
            builder.CloseComponent();
        }
    }
    
  • 在Blazor页面中直接使用:<SkiaRenderer />

2. WPF Blazor宿主

针对Windows平台的WPF Blazor应用:

  • 安装NuGet包:SkiaSharp.Views.WPF
  • 使用WPF的SKElement控件,在PaintSurface事件中实现绘图逻辑
  • 通过Blazor与WPF的绑定机制,将SKElement封装为Blazor组件嵌入页面

3. WinForms Blazor宿主

针对Windows平台的WinForms Blazor应用:

  • 安装NuGet包:SkiaSharp.Views.WindowsForms
  • 使用SKControl或SKPictureBox作为绘图容器,处理PaintSurface事件
  • 同样通过Blazor与WinForms的绑定能力,将SkiaSharp控件封装为Blazor组件

关键优势

  • 绘图逻辑运行在原生桌面进程,性能与纯原生SkiaSharp应用一致
  • 可直接访问本地文件、硬件加速等原生系统资源,不受WASM沙箱限制
  • 兼容性完全依赖宿主框架:MAUI支持全平台,WPF/WinForms针对Windows优化

内容的提问来源于stack exchange,提问作者Redy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:20:46