Я работаю над проектом WPF и недавно сосредоточился на Canvas Object и его дочерних элементах. Теперь у меня есть холст, и я хочу динамически показывать прямоугольники на нем. Количество максимально показанных прямоугольников фиксировано. Итак, я брожу по следующим сценариям, какой из них имеет лучшую производительность?
A: Сначала создайте максимальное количество прямоугольников и просто установите свойства, чтобы изменить их внешний вид.
XAML:
<Canvas x:Name="canvasA">
<Rectangle x:Name="rect1" Margin="0" Width="0" Height="0" />
<Rectangle x:Name="rect2" Margin="0" Width="0" Height="0" />
<Rectangle x:Name="rect3" Margin="0" Width="0" Height="0" />
</Canvas>
C#:
private void setRectangle1(Rectangle A)
{
rect1 = A;
}
B: Добавить / Очистить прямоугольники (и их свойства) полностью по коду.
XAML:
<Canvas x:Name="canvasA">
</Canvas>
C#:
private void resetChildren(Rectangle[] rects)
{
if(rects.Count()>0 && rects.Count()<MaxRectNum)
{
canvasA.Children.Clear();
foreach(Rectangle r in rects)
{
canvasA.Children.Add(r);
}
}
}