如何在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或者它是另一個對象? –