О выполнении добавления / очистки дочерних или фиксированных дочерних номеров и установки полей / ширины / высоты (холст WPF) - PullRequest
0 голосов
/ 11 марта 2020

Я работаю над проектом 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);
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...