

ProEssentials v11 是首个为 WinUI 3 打造、构建于从零起步的原生 C++ 引擎之上的高端图表库。市场上其他所有 WinUI 图表都是通过 XAML 层绘制的托管 .NET 控件。ProEssentials 则托管了多年来一直驱动其 C++ MFC、Delphi、ActiveX、WinForms 和 WPF 产品的那套原生 Direct3D 与 Direct2D 引擎,如今直接运行于 WinUI 3 之下。
正是这套原生引擎,让 ProEssentials 能够实时流式处理 1亿个点、渲染真正的 GPU 3D 与 4D 曲面,并以原生 ARM64 二进制文件交付。它的授权方式也回归了开发者曾经熟悉的模式:一次性永久购买、免费终身支持,而不是每年续订的订阅。
下面的表格将 ProEssentials 与当今提供 WinUI 图表控件的四款组件套件进行对比:Syncfusion、Telerik、DevExpress 和 ComponentOne。
Quick NuGet clone, build, run? Grab the ProEssentials WinUI starter on GitHub (GigasoftInc/winui-starter).
最大的区别就体现在数据的第一行上:ProEssentials 使用原生 C++ 引擎渲染,而每个竞品都通过托管 XAML 渲染。本页几乎其余的一切都由此而来。
| Factor | ProEssentials | Syncfusion | Telerik | DevExpress | ComponentOne |
|---|---|---|---|---|---|
| Rendering Engine | Native C++ Direct3D + Direct2D — one engine shared with MFC, Delphi and ActiveX | Managed XAML; WriteableBitmap fast series | Managed XAML; Composition ContainerVisuals | Managed XAML control | Managed XAML; optional Direct2D render mode |
| Large-Data Ceiling (2-D) | ✅ 100 million points, real time (GigaPrime2D) | Bitmap fast series; million-point benchmark is WPF | Aggregate the data before binding | Sampling; largest figures are WinForms | Direct2D mode; 50k published (WinForms) |
| Data Loading Model | Zero-copy — reads your existing float[] in place | Object-per-point ItemsSource | Object-per-point ItemsSource | Object-per-point ItemsSource | ItemsSource binding |
| GPU 3-D / 4-D Surfaces | ✅ Native Direct3D — surface, wireframe, scatter, contour, 4-D color | 2-D charting focus | 2-D charting focus | 2-D charting focus | 2-D charting focus |
| Native ARM64 Engine | ✅ Yes — PEGRPARM64I.DLL native binary | Managed .NET (ARM64 via runtime) | Managed .NET (ARM64 via runtime) | Managed .NET (ARM64 via runtime) | Managed .NET (ARM64 via runtime) |
| How far the same control reaches | One engine, one PExxx API — WinUI, WPF, WinForms, C++ MFC, Delphi, ActiveX, embedded scenarios, plus basic web reporting via WebForms | WinUI control targets Windows desktop; web and mobile are separate product lines | WinUI control targets Windows desktop; web and mobile are separate product lines | WinUI control targets Windows desktop; web and mobile are separate product lines | WinUI control targets Windows desktop; web and mobile are separate product lines |
| AI Code Assistance | pe_query.py — answers validated against the compiled DLL | Docs and AI chat (can hallucinate) | Docs and AI chat (can hallucinate) | Docs and AI chat (can hallucinate) | Docs (can hallucinate) |
| License Model | Perpetual — one-time, royalty-free | Annual subscription | Annual subscription | Annual subscription | Annual subscription |
| Activation | One key for all your apps — set at dev setup, no phone-home | License key registered in app code | License key in the project | License key in the project | License key in the application |
| Support | Free, unlimited, lifetime of the version | With active subscription | With active subscription | With active subscription | With active subscription |
| What You License | A focused charting product | Full suite (chart is 1 of 100+ controls) | Full suite (chart is 1 of 100+ controls) | Full suite (chart is 1 of 100+ controls) | Full suite (chart is 1 of 100+ controls) |
托管的 WinUI 图表在 .NET 中构建画面,再将结果交给 XAML 合成器。这对于几千个点没有问题,但随着数据增长,对象图、垃圾回收以及逐点封送就会成为瓶颈。
ProEssentials 跳过了那一层。其 C++ 引擎直接与 Direct3D 和 Direct2D 对话,利用 compute shader 在 GPU 上构建图表几何,并就地读取你的数据数组。WinUI 控件只是围绕该引擎的一层薄宿主,而非渲染器本身。
由于该引擎在 C++ MFC、Delphi、ActiveX、WinForms、WPF 和 WinUI 上都是同一份原生代码,图表在任何地方的外观和性能都一致,而你只需学习一次的 API 便可通用于所有这些平台。
| Library | WinUI Rendering | Engine | Shared Engine Reach |
|---|---|---|---|
| ProEssentials | Native Direct3D + Direct2D | C++ | WinUI, WPF, WinForms, MFC, Delphi, ActiveX, WebForms |
| Syncfusion | XAML + WriteableBitmap | Managed .NET | WinUI only (web/mobile are separate products) |
| Telerik | XAML + Composition visuals | Managed .NET | WinUI only (web/mobile are separate products) |
| DevExpress | XAML | Managed .NET | WinUI only (web/mobile are separate products) |
| ComponentOne | XAML + optional Direct2D | Managed .NET | WinUI only (web/mobile are separate products) |
ComponentOne 的 FlexChart 确实提供了 Direct2D 渲染模式,因此 ProEssentials 并不是唯一能触及 Direct2D 的 WinUI 图表。区别在于,ProEssentials 从头到尾都是一个完全原生的 C++ 引擎,具备 GPU 3D 和原生 ARM64 构建,而不是一个仅在某条快速路径上调用 Direct2D 的托管控件。
ProEssentials 图表不是由 XAML 绘制的。原生引擎创建自己的 DXGI flip-model composition swap chain(BGRA8、两个缓冲区、FLIP_DISCARD),并通过 ISwapChainPanelNative::SetSwapChain 将生成的 IDXGISwapChain1 交给 XAML 宿主。从那一刻起,图表的像素便由 DWM 直接合成到你的视觉树中:没有中间的 WriteableBitmap、没有逐帧的 CPU 复制、也没有需要遍历的 XAML 形状树。Direct2D 设备上下文创建于同一个 D3D11 设备上,并以后备缓冲区本身为目标,因此 2-D 内容由 GPU 直接绘制到 DWM 即将呈现的那个缓冲区中。我们以 96 DPI 的设备像素配合半像素变换进行渲染,这正是坐标轴刻度线和网格线能够精确落在像素边界上、而不会跨两个像素模糊的原因。
延迟是刻意控制的。DXGI 会乐于预先缓冲两到三帧;我们调用 SetMaximumFrameLatency(1),使呈现队列永远不会增长。再结合按需渲染——在数据变化时才呈现,而非以 60 fps 的循环持续呈现——图表在拖动时保持响应,而在没有任何移动时不会空转 GPU。缩放框拖动还能从 RenderPriority 属性获得进一步的帮助,它将拖动的优先级提升到常规图表重绘之上,使缩放框紧跟指针,而不会因排在它们之后而被饿死。
有必要精确说明 WinUI 在这里改变了什么。WPF 的 DirectX 互操作仍然通过 D3DImage 进行,这是一条可追溯到 2008 年的 Direct3D 9Ex 共享表面路径:D3D11 内容必须先复制到 D3D9Ex 表面,WPF 的合成器才会接受它。每一个 WPF 图表库都继承了这一次跳转,我们的也不例外。这是平台的限制,而非厂商的选择,也是同一套引擎在 WinUI 下比在 WPF 下呈现延迟更低的重要原因。
3-D 路径中的两个细节说明了 composition 有多讲究。DXGI 不允许 flip-model composition swap chain 使用多重采样,因此当启用 MSAA 时,引擎会将 3-D 场景渲染到一个离屏的多重采样目标,再将其解析到单采样后备缓冲区中;这样你既能在曲面图上保持平滑的边缘,又不必放弃 composition。2-D 与 3-D 交换链在 alpha 模式上也是有意做了区分。2-D 链采用预乘 alpha,使图表能够合成到你的 XAML 背景之上;而 3-D 链是不透明的,因为 3-D 场景以零 alpha 清屏,且 Direct2D 坐标轴叠加层只写入颜色而不写入 alpha。在预乘链下,DWM 会把这些叠加层像素当作透明处理,标题、图例和坐标轴便会悄然消失。
叠加层也享有同样的处理方式,而非折衷方案。实时表格标注被渲染到第二个完全透明的 composition swap chain 中,它创建于同一批 D3D11 和 Direct2D 设备上,并绑定到控件模板中它自己的面板。它共享图表的半像素变换,因此两层可以逐像素对齐,而且独立重绘:更新实时表格叠加层不会重新渲染其下方的图表。
在大数据表现上,原生引擎最能体现优势。ProEssentials 让图表直接指向你的 float 数组,并将全部 1亿个值发送到 GPU,无需选择任何特殊的序列类型。每一个点都在 GPU 上处理:当数据比显示更密集时,一个用于过滤的 compute shader 会把每个像素列压缩为 50 组 min/max 对,即每像素 100 个绘制点,这样每一处尖峰都得以保留,密集区域渲染为真正的实心填充,效果与逐点绘制完全一致。托管套件也能显示大数据集,但它们依赖按视口宽度降采样或位图快速路径,而且会先把你的数据复制到对象集合中。
| Factor | ProEssentials | Syncfusion | Telerik | DevExpress | ComponentOne |
|---|---|---|---|---|---|
| Plots 100M in real time? | ✅ Yes — natively | ⚠️ Bitmap series (WPF benchmark) | ⚠️ Aggregate first | ⚠️ Sample first | ⚠️ Direct2D (50k published) |
| Data model | Zero-copy float[] pointer | Object-per-point | Object-per-point | Object-per-point | ItemsSource binding |
| Special series type needed? | No — same control at any size | Yes — FastLineBitmapSeries | Yes — sampling settings | Yes — sampling settings | Yes — Direct2D render mode |
| Full-fidelity display | Lossless GPU min/max filter | Bitmap rasterization | Downsampled subset | Sampled subset | Direct2D rasterization |
我们把完整的 1亿个点演练写成了一篇独立文章,附有每个库的 WinUI 代码。 阅读 WinUI 1亿个点对比.
主流 WinUI 套件专注于 2-D 笛卡尔图表和金融图表。ProEssentials 同样将其原生 Direct3D 管线带到了 WinUI,因此同一个控件可以在 GPU 上渲染 3-D 曲面、线框、散点云、等高线以及 4-D 颜色映射图。对于需要真正曲面图而非风格化 3-D 柱状图的工程、科学与信号处理工作而言,这是托管控件在 WinUI 上无法与之竞争的一个门类。
ProEssentials 是一个无需账户、无需注册的公开下载:从我们网站获取 PE11-Setup.exe。它会在本地安装所有内容,包括完整的示例集、本地帮助系统,以及一个由预构建 EXE 组成的 TestBed,安装一完成即可立即运行。我们也提供 NuGet 包用于项目级安装,但 NuGet 只包含程序集:没有帮助系统、没有示例、没有 TestBed。这正是我们推荐用安装程序进行评估的原因。
| Factor | ProEssentials | Syncfusion | Telerik | DevExpress | ComponentOne |
|---|---|---|---|---|---|
| How you get it | One public download — PE11-Setup.exe | Account, then installer or NuGet | Account, then installer or feed | Account, then private feed | Account, then installer or NuGet |
| Account to evaluate? | No | Yes | Yes | Yes | Yes |
| NuGet option | Yes — local feed added by setup, plus nuget.org | Yes | Yes + license key | Private feed + credentials | Yes + license key |
| What the download gives you | Assemblies + full example set + local help + pre-built TestBed EXEs | Suite installer / demo app | Suite installer / demo app | Suite installer / demo app | Suite installer / demo app |
在 WinUI 上,每家厂商都继承了相同的平台要求。未打包的 WinUI 应用需要在目标机器上安装 .NET 10 Desktop Runtime 和 Windows App SDK Runtime,而且你分发的是整个输出文件夹,而非单个 EXE。各个库之间的差异仅在于图表本身在此之上额外增加了什么。
| Factor | ProEssentials | Syncfusion | Telerik | DevExpress | ComponentOne |
|---|---|---|---|---|---|
| Runtimes on the target machine | .NET 10 Desktop + Windows App SDK | Same — WinUI platform requirement | Same — WinUI platform requirement | Same — WinUI platform requirement | Same — WinUI platform requirement |
| What the chart itself adds | Your assembly + one native engine DLL — PEGRP64I.DLL, or PEGRPARM64I.DLL on ARM64 | Managed assemblies | Managed assemblies | Managed assemblies | Managed assemblies |
| Native ARM64 build | Yes — separate ARM64 engine (AnyCpu assembly embeds both) | Managed (ARM64 via runtime) | Managed (ARM64 via runtime) | Managed (ARM64 via runtime) | Managed (ARM64 via runtime) |
| Per-app licensing step | One serial covers all your apps — no per-exe key, no phone-home | License key registered in app code | License key in the project | License key in the project | License key in the application |
这并非简单的价格对等:那四款套件销售的是打包产品,其中图表只是上百个控件中的一个,而 ProEssentials 是一款专注的图表产品。更明显的区别在于模式。ProEssentials 是一次性永久购买;而那些套件是年度订阅,需要续订才能持续获得更新与支持。下面的数字是用于对比的套件参考起始价,并非仅图表的价格。
| Factor | ProEssentials | Syncfusion | Telerik | DevExpress | ComponentOne |
|---|---|---|---|---|---|
| License model | Perpetual — one-time | Annual subscription | Annual subscription | Annual subscription | Annual subscription |
| Indicative price (1 dev) | $4,799 perpetual | Free community tier, else paid | DevCraft suite, from ~$1,126 / yr | Universal suite, from ~$2,254 / yr | Per-developer / yr |
| Pay again next year? | No | Yes | Yes | Yes | Yes |
| Free community tier? | Full-featured evaluation | Yes — under revenue / size limits | No | No | No |
| Support | Free, unlimited, lifetime | Forums; paid tiers | With active subscription | With active subscription | With active subscription |
运作机制同样简单。ProEssentials 在购买时提供一个序列号,用于配置你的开发环境。没有额外的回连验证,也没有逐个应用的认证。
价格为套件的参考起始价 (ComponentSource, 2026),会随时间变化;请向各厂商确认当前定价及社区授权条款。
如果你的 WinUI 应用只绘制适量数据、并且完全生活在 .NET 世界里,那么这些套件中的任何一个都能满足你,你甚至可能已经拥有其中之一。但如果你需要大规模数据下的真正性能、GPU 3-D 与 4-D 曲面、原生 ARM64 构建,或者需要与 C++、Delphi 或 ActiveX 代码库共享同一套图表,那么 ProEssentials 是唯一为此而生的 WinUI 选择,而且无需订阅。
竞品的渲染与授权细节来自各厂商自己的文档及公开定价:
Syncfusion (WinUI SfCartesianChart)
Telerik (UI for WinUI RadChart)
DevExpress (WinUI / Universal)
ComponentOne / MESCIUS (FlexChart for WinUI)
我们的首要目标是通过为您的机构和终端用户提供最简单、最专业的服务,达成您的成功。
ProEssentials是由需要自定义图表组件的专业电气工程师创立的。加入使用ProEssentials的顶级工程公司名单。
感谢您成为ProEssentials的客户,也感谢您研究ProEssentials图表引擎。