如何在WPF中优化Canvas绘图,当我在程序“Paint”中有10000行时?当我画“绘画”时,我可以使用多少我需要线条和圆圈,但在我的程序agter + -10000中,我有滞后。 我用10000行创建一个测试程序,当我在画布上移动鼠标矩形时,将位置更改为光标。 这里代码如何优化WPF中的Canvas绘图?
for (int i=0; i < 10000; i++)
{
Line l = new Line();
l.Stroke = Brushes.Black;
l.StrokeThickness = 1;
l.X1 = 50+ privi;
l.Y1 = 50 + privi;
l.X2 = 100 ;
l.Y2 = 100 + privi;
MainCanvas.Children.Add(l);
privi += 5;
}
,在这里我移动
if (clicked)
{
Point p = Mouse.GetPosition(MainCanvas);
rect.Margin = new Thickness(p.X-25, p.Y - 25, 0, 0);
}
enter code here
UPDATE
privi = 5;
Rectangle rect = new Rectangle();
rect.Fill = Brushes.Black;
rect.Width = 50;
rect.Height = 50;
MainCanvas.Children.Add(rect)
什么是rect?你只在初始化时画线吗?听起来很奇怪的是Canvas应该具有的维度。假设privi = 0,当i = 10000时,l.X1 = 50050 ... –
@SimoneCifani矩形,我尝试在画布上移动。这样我检查一个滞后。 –
对不起,但我仍然不明白矩形的位置。查看代码,直接在画布中绘制线条。 rect是否包含MainCanvas或者它是另一个对象? –