21 c# wpf performance templates itemscontrol
我正在编写WPF代码来显示实时情节,这是一条包含大约10,000点的连线.在我的电脑中显示图片大约需要5秒钟.有没有人有想法让它更快,并在0.5秒内?
class eee : FrameworkElement
{
public eee()
{
_children = new VisualCollection(this);
Random rand = new Random();
DrawingVisual dv = new DrawingVisual();
using (DrawingContext dx = dv.RenderOpen())
{
Pen drawingPen = new Pen(Brushes.Black, 1);
double x=rand.Next(300);
double y = rand.Next(300);
for (double i = 0; i < 1000; i = i + 0.1)
{
y = 100 + rand.Next(100);
dx.DrawLine(drawingPen, new Point(i, x), new Point(i + 1, y));
x = y;
}
}
_children.Add(dv);
}
Run Code Online (Sandbox Code Playgroud)
Ran*_*e42 38
Charles Petzold正是这样做的.它在我的主机上更快(<0.3秒),而且点数甚至是DataBound !! ;)
Tamir Khason也做了这一点,并在这里更深入地介绍了Bitmap风格的性能WPF .
Rico Mariani对3D高性能图形有一些指导,基本上利用值类型可以提高您的吞吐量,如果经过深思熟虑.
张建中在这个主题上给出了我最喜欢的新教程,3D散点图数以万计的数据点动画和交互.