WPF图表库平台支持比较

WPF、WinForms、C++ MFC、Delphi VCL和ActiveX — 哪些图表库从单一原生引擎支持哪些框架

WPF chart
WinForms chart
MFC chart
Delphi chart
ActiveX chart
C++ chart
xcopy deploy
platform coverage

平台支持:
JavaScript、WinUI、WPF、WinForms、C++、Delphi 与 ActiveX,源自同一个原生引擎

大多数 WPF 图表库只支持一个框架:WPF。有些会加上 WinForms。四家竞争对手无一覆盖 C++ MFC、Delphi VCL 或 ActiveX。ProEssentials 在架构上截然不同——它是一个原生 Win32 DLL 图表引擎,拥有三套完整的 API 层:面向 WinUI、WPF 与 WinForms 的分层 .NET 属性接口,以及面向 MFC、Delphi、ActiveX 和任何具备外部函数接口(FFI)能力的语言的标准 C/C++ DLL API。以及面向浏览器的 JavaScript 属性 API,运行的是编译为 WebAssembly 的同一引擎。三套 API 都访问同一个渲染引擎、同一套 GPU compute shader 以及同样的 1,200 多个属性。

这很重要,因为真实组织不会只运行单一框架。一家国防承包商可能拥有基于MFC的数据采集软件、WPF操作员仪表板和Delphi遗留报告工具——所有这些都需要相同的图表功能。ProEssentials以一个许可证、一套文档和一个支持团队覆盖所有三者。本页比较平台覆盖、部署特性以及所有平台上可用的五个图表对象。

ProEssentials platform coverage, Delaunay triangulation contour chart from scattered XYZ data, native WinForms
ProEssentials WinForms, Delaunay triangulation contour, scattered XYZ data
平台支持矩阵

下表对全部五个 WPF 图表库的框架支持情况进行了比较。SciChart 仅支持 WPF(外加单独的 iOS/Android/web 产品,与此无关)。LightningChart 支持 WPF 与 WinForms。Syncfusion 与 DevExpress 支持 WPF、WinForms 与 WinUI,其中 DevExpress 还在独立产品线中提供 Delphi VCL 与 ActiveX。只有 ProEssentials 用单一产品覆盖全部九个平台目标。 五家都提供 JavaScript 产品;除 ProEssentials 之外,每一个都是拥有独立 API 的独立代码库。

Platform / FrameworkProEssentialsSciChartLightningChartSyncfusionDevExpress
JavaScript / WebAssembly✅ Same engine, same API✅ (separate codebase)✅ (separate codebase)✅ (separate codebase)✅ (separate codebase)
WinUI 3 (.NET 10)✅ Native✅ (managed)✅ (managed)
WPF (.NET)
WinForms (.NET)
C++ MFC / Win32✅ Native DLL API
Delphi VCL✅ Native DLL API✅ (VCL suite)
ActiveX / COM✅ OCX controls✅ (ActiveX)
VB6 / Classic ASP✅ via ActiveX
C++/CLI (.NET mixed-mode)✅ Both API layers
Any language with DLL FFI✅ Standard Win32 DLL

ProEssentials覆盖8个平台目标中的8个。DevExpress覆盖5个(跨单独产品线)。LightningChart和Syncfusion各覆盖3个。SciChart仅覆盖2个——WPF和C++/CLI。对于需要C++ MFC、Delphi、ActiveX或跨语言DLL访问的组织,ProEssentials是本比较中提供原生支持的唯一图表库。

三个API层,一个引擎

ProEssentials通过三个可互换的API层暴露其全部功能集,访问相同的底层原生引擎。.NET属性接口通过层级化属性对象提供IntelliSense丰富的访问(Pesgo1.PeData.Subsets = 5)。C/C++ DLL API通过PEnset/PEvset函数调用提供直接访问(PEnset(hObject, PEP_nSUBSETS, 5))。JavaScript API 针对编译为 WebAssembly 的同一引擎,提供与 .NET 相同的属性名称(Pego1.PeData.Subsets = 5)。三个API都设置相同的内部状态——没有性能差异,没有功能缺口,没有行为差异。

这种双层设计意味着.NET开发者可以通过PeSpecial.HObject访问原生DLL句柄进行高级场景,C++开发者可以使用标准Win32 PEcreate()调用创建图表窗口。C++/CLI混合模式应用程序可以在同一项目中使用任一或两个API。渲染引擎、GPU Compute Shader、导出功能、打印和所有1,200+图表属性无论使用哪个API层都是相同的。

API Factor.NET Property InterfaceNative C/C++ DLL API
Access patternPesgo1.PeData.Subsets = 5;PEnset(hObject, PEP_nSUBSETS, 5);
PlatformsWinUI, WPF, WinForms, C++/CLIMFC, Win32, Delphi, ActiveX, any FFI
Rendering engineSame native DLL underneathSame native DLL directly
GPU compute shaders✅ Full access✅ Full access
IntelliSense / code completionFull .NET IntelliSenseHeader file constants
InteropPeSpecial.HObject gives DLL handleHWND-based, standard Win32

每个属性、每个枚举值、每个图表类型在两个API中都完全相同地工作。.NET枚举ManualScaleControl.MinMax映射到C++常量PEMSC_MINMAX。.NET事件PeDataHotSpot映射到Win32消息CYCHART_DATAHOTSPOT。文档覆盖两者——C++ DLL常量名称与每个.NET属性路径一起列出。

平台详细分析

ProEssentials为每个平台提供专用控件——不是包装器,不是互操作垫片,而是使用平台自身控件托管模型的原生实现。以下是每个平台获得的内容:

WinUI 3 (.NET 10)

ProEssentials v11 新增了专用的 WinUI 3 控件(PegoWinUI、PesgoWinUI、Pe3doWinUI、PepsoWinUI、PepcoWinUI)——首个构建于原生 Direct3D 与 Direct2D C++ 引擎之上、而非托管 XAML 的高端 WinUI 图表库。这些控件通过直接托管在 XAML 可视化树中的 composition swap chain 进行渲染,面向 .NET 10,并以完整支持 GPU compute shader 的原生 x64 和 ARM64 版本发布。

WinUI 控件与 WPF 和 WinForms 控件共享完全相同的 PExxx 属性、方法和事件 API,因此示例代码几乎可以原封不动地在各接口之间移植。Syncfusion 和 DevExpress 也提供 WinUI 图表,但都是托管 XAML 控件——ProEssentials 是唯一由原生 C++ 引擎渲染的 WinUI 图表库。

WPF (.NET)

ProEssentials 提供专用的 WPF 控件(PegoWpf、PesgoWpf、Pe3doWpf、PepsoWpf、PepcoWpf),可直接集成到 XAML 布局中。它们并非 WinForms-in-WPF 的互操作包装器——而是真正的 WPF FrameworkElement,支持 WPF 布局、数据绑定与 WPF 渲染管线。这些控件以原生方式使用 Direct2D 与 Direct3D 渲染引擎,并为大数据集提供完整的 GPU compute shader 支持。WPF 控件面向 .NET Framework 4.8、.NET 8 与 .NET 10,引擎在加载时绑定与架构匹配的原生构建(ARM64 上为 PEGRPARM64I.DLL),因此除应用 EXE 本身构建为 x64 的情形之外,ProEssentials 在所有情况下都以原生 ARM64 渲染。

所有五个图表对象都作为WPF控件可用。NuGet安装将控件添加到Visual Studio工具箱。层级化.NET属性接口提供完整的IntelliSense。超过40个包含的WPF示例项目演示了每种图表类型、实时流、注释、等高线图、3D曲面和交互式仪表板。

WinForms (.NET)

ProEssentials WinForms 控件(PegoWin、PesgoWin、Pe3doWin、PepsoWin、PepcoWin)是标准的 System.Windows.Forms.Control 派生类,可直接放入任意 WinForms 设计器布局。它们使用与 WPF 控件相同的原生 DLL 和相同的 .NET 属性接口——相同的代码模式、相同的属性名称、相同的渲染引擎。与 WPF 控件一样,它们面向 .NET Framework 4.8、.NET 8 与 .NET 10,并提供原生 x64 与 ARM64 构建。

SciChart不提供WinForms控件。LightningChart提供WinForms控件。Syncfusion和DevExpress都提供WinForms图表。然而,没有竞争对手像ProEssentials那样在WPF和WinForms之间共享单一原生引擎——在竞争对手中,WPF和WinForms图表控件是具有不同API、有时不同功能的独立代码库。

C++ MFC / Win32

ProEssentials提供原生C/C++ DLL API(Pegrpapi.h),包含100多个用于图表创建、属性访问、数据加载、导出和打印的函数。图表窗口使用PEcreate()创建,使用PEP_属性常量通过PEnset()/PEvset()函数调用配置。这不是COM互操作或.NET托管——它是直接链接到任何C/C++应用程序的标准Win32 DLL。

DLL API覆盖完整的ProEssentials功能集:所有五个图表对象、通过Direct3D的GPU Compute Shader、实时流、注释、导出为PNG/JPEG/SVG/EMF、打印和交互式缩放/平移。MFC集成很简单——将图表创建为任何CWnd/CDialog的子窗口,通过PEnset/PEvset调用配置属性,处理Win32消息以响应事件。

本比较中没有其他图表库提供原生C/C++ DLL API。SciChart、LightningChart、Syncfusion和DevExpress都是仅.NET的——C++应用程序需要托管CLR、创建托管包装器或使用COM互操作。ProEssentials是Windows上纯原生C++图表的唯一选择。

Delphi VCL和ActiveX / COM

Delphi开发者通过C++ MFC使用的相同原生DLL API访问ProEssentials。Pegrpapi.h头文件直接转换为Delphi单元导入。图表窗口使用PEcreate()创建,使用相同的PEnset/PEvset模式配置。所有五个图表对象、GPU渲染和完整的属性集都可用。

ActiveX/COM访问通过注册的OCX控件提供。VB6、Classic ASP和任何支持COM的环境都可以托管ProEssentials图表。OCX控件暴露与DLL API和.NET接口相同的属性集——相同的渲染引擎、相同的行为、相同的输出。

DevExpress提供单独的Delphi VCL产品线和ActiveX控件,但这些是与其.NET图表不同的产品,具有不同的API和不同的功能。ProEssentials在所有平台上使用相同的引擎——在WPF中工作的在Delphi、MFC和ActiveX中完全相同地工作。

部署和许可比较

部署简便性直接影响IT运营成本、气隙环境支持和投产时间。ProEssentials部署为总计5-8MB的单个NuGet包,无运行时激活、无在线账户、无外部依赖。浏览器版本通过 npm 或两个脚本标签安装,无需构建步骤。以下是每个库的比较:

Deployment FactorProEssentialsSciChartLightningChartSyncfusionDevExpress
NuGet packages1 package3-5 packages2-3 packages10+ packages5+ packages
Total deployment size5-8 MB80-100 MB50-80 MB100-150 MB80-120 MB
External runtimes requiredNoneVC++ 2013 Redistributable (3-D)NoneNoneNone
Online account required?NoNoYes, license portalYes, license keyNo
License activationOne key, offline, no per-app activationRuntime key in codeOnline activation serverLicense key in codeRuntime key in code
Xcopy / USB deploy?✅ Copy DLLs, runRequires NuGet restoreRequires activationRequires NuGet restoreRequires NuGet restore
Air-gapped deployment✅ No network needed✅ Offline key❌ Online activation + $300 reactivation fee⚠ Offline key generation✅ Offline key
Nag screen if license lapses?No, perpetualNoYes, 1 fps + watermarkNoNo

ProEssentials是本比较中唯一支持真正xcopy部署的库,无激活服务器、无账户门户、无嵌入代码中的许可密钥、无外部运行时、订阅到期时无提醒屏幕。对于气隙环境(国防、制造车间、机密网络),这往往是决定性因素——LightningChart的在线激活要求和$300重新激活费用使其在断开连接的部署中不切实际。

五个图表对象——所有平台

ProEssentials 提供五种专门的图表对象,每一种都针对特定的可视化领域进行了优化。这五种在每个受支持的平台上都可用——WinUI、WPF、WinForms、MFC、Delphi 与 ActiveX。无论在哪个平台,图表对象名称、属性结构与渲染引擎都完全相同。

Chart ObjectPurposeChart TypesPlatforms
PegoGraph Object, categorical X-axisBar, line, area, OHLC, ribbon, histogram, stacked, step, demographic pyramidAll (WinUI, WPF, WinForms, MFC, Delphi, ActiveX)
PesgoScientific Graph, continuous numeric X-axisScatter, line, spline, area, contour, heatmap, bubble, error bars, real-time streamingAll
Pe3do3-D Scientific GraphSurface, wireframe, scatter, bar, waterfall, Delaunay, polygon data, 4-DAll
PepsoPolar / Smith ObjectPolar line, polar scatter, polar area, Smith charts, radar/spiderAll
PepcoPie Chart ObjectPie, doughnut, multi-ringAll

每个图表对象使用相同的层级化属性接口(PeData、PePlot、PeGrid、PeColor、PeString、PeFont、PeAnnotation、PeUserInterface、PeConfigure、PeFunction、PeLegend、PeTable)。学习一个图表对象意味着您已经了解了所有五个的属性结构。对象之间的唯一区别是特定的PlottingMethod枚举和数据模型(Pego使用分类PointLabels,Pesgo使用数值X数组,Pe3do使用XYZ网格)。

遗留迁移和长期投资保护

ProEssentials 自 1993 年以来一直在持续开发——拥有超过 30 年的向后兼容性。为 ProEssentials v4(MFC,约 2000 年)编写的应用,只需极少的代码改动即可针对 v11 重新编译。属性常量名称(PEP_nSUBSETS、PEP_faYDATA 等)在每一个主要版本中都保持稳定。新功能以新属性的形式加入——现有属性从不被移除或重命名。

这对拥有长寿命代码库的组织很重要。一个2005年从MFC开始、2015年将UI迁移到WPF、计划2030年进行现代化的国防项目可以始终使用ProEssentials——相同的许可、相同的支持、适应每次平台转换的相同图表引擎。MFC时代的C++ DLL代码仍然可以编译。2015年的WPF代码仍然可以运行。投资得到保护。 同样的属性名称,如今在 JavaScript 中一样可用。

2012-2015年推出的竞争对手(SciChart、LightningChart)没有同等的记录。Syncfusion和DevExpress有悠久的历史,但其图表组件在不同的平台代际中被多次重写,主要版本之间经常有破坏性的API更改。

30年投资保护:

一份授权关系、一个支持团队、一套横跨 MFC → WinForms → WPF → WinUI → 乃至未来任何技术的属性接口。ProEssentials 是本次对比中唯一在保持向后兼容的同时,展现出数十年平台连续性的图表库。

平台覆盖的底线

ProEssentials 是唯一用单一原生引擎覆盖 JavaScript、WinUI、WPF、WinForms、C++ MFC、Delphi VCL 与 ActiveX 的图表库。三套可互换的 API 层(.NET 属性接口、C/C++ DLL API 与 JavaScript)访问同一个渲染引擎、同一套 GPU compute shader 以及同样的 1,200 多个属性。部署体积为 5–8 MB,无需在线激活、无需账户、也无需任何外部运行时。全部五种图表对象在每个平台上的表现都完全一致。

SciChart 仅支持 WPF。LightningChart 支持 WPF 与 WinForms,但需要在线激活。Syncfusion 与 DevExpress 支持 WPF、WinForms 与 WinUI,但每个平台使用不同的代码库。DevExpress 还提供 Delphi 与 ActiveX,但作为 API 各异的独立产品。对于需要跨平台 Windows 图表的组织——尤其是有 C++ MFC、Delphi 或隔离网络(air-gapped)部署需求的组织——ProEssentials 是唯一能用一个产品、一份授权、一种支持关系覆盖每一个目标的选择。 五家都提供 JavaScript 库,但每一个都是拥有独立 API 的独立代码库。ProEssentials 以一个产品、一份许可、一个支持关系覆盖所有目标平台。

性能与架构

GPU Compute Shader和按需渲染如何在不持续消耗功率的情况下提供速度。

了解更多
定价与支持

永久许可、免费无限支持,以及五个库的5年TCO比较。

了解更多
3D科学图表

曲面、等高线、瀑布、4D、Delaunay——GPU Compute Shader渲染与生产代码演练。

了解更多
关于平台支持或迁移有问题?

ProEssentials支持免费、无限制,由构建引擎的开发者直接提供。关于MFC迁移、Delphi集成、WPF部署、JavaScript构建、气隙许可或其他任何问题,请随时咨询。

联系ProEssentials团队 →

我们的任务

我们的首要目标是通过为您的机构和终端用户提供最简单、最专业的服务,达成您的成功。

我们是工程师

ProEssentials是由需要自定义图表组件的专业电气工程师创立的。加入使用ProEssentials的顶级工程公司名单。

谢谢

感谢您成为ProEssentials的客户,也感谢您研究ProEssentials图表引擎。