在WPF中绘制大量数量的线段时,绘制很慢,而且很耗CPU的资源。绘制到几百条线段时,就会明显无法交互操作。
通过查询资料,我们找到一个方法可以解决:使用StreamGeometry在内存中绘制,然后再Render到WPF的控件上。
实现如下:
using (var geometryContext = _cueGeometry.Open())
using (var perContext = _perGeometry.Open())
using (var _volContext = _volGeometry.Open())
{
for (int i = 0; i < TickLineValue.drawTickData.Count() - 1; i++)
{
TickLineValue.drawTickData[i].picTopY = topY;
TickLineValue.drawTickData[i].PriceMax = TickLineValue.tickMaxValue;
TickLineValue.drawTickData[i].PriceMin = TickLineValue.tickMinValue;
TickLineValue.drawTickData[i].ScreenTickHeight = TickLineValue.tickHeight;
TickLineValue.drawTickData[i].VolMax = TickLineValue.volMaxValue;
TickLineValue.drawTickData[i].picVolTopY = TickLineValue.lineObject.GetYValue() + TickLineValue.perPicTxtHeight;
TickLineValue.drawTickData[i].ScreenVolHeight = TickLineValue.volHeight;
//绘制图形的
x = TickLineValue.picLeftWidth + i * TickLineValue.picWidth;
&nb

本文介绍了在WPF中遇到大量线段绘制导致性能问题时的解决方案。通过使用StreamGeometry在内存中绘制,然后将绘制内容渲染到WPF控件上,可以显著提高绘制速度并降低CPU占用。示例代码展示了如何利用这种方法优化连续线段和独立线段的绘制过程。
最低0.47元/天 解锁文章
908

被折叠的 条评论
为什么被折叠?



