Цикл нескольких элементов управления / элементов в C# (App Store)

У меня есть несколько изображений, которые я хочу зациклить и установить свойства.

Фрагмент из xaml, как вы можете видеть их имена: Life1, Life2, ...

                <StackPanel Orientation="Horizontal">
                <Image x:Name="Life1"></Image>
                <Image x:Name="Life2"></Image>
                <Image x:Name="Life3"></Image>
            </StackPanel>

То, что я хочу, это способ зациклить их и установить свойства.

           for (int i = 1; i <= 3; i++) {
            Life1.Source = ...
        }

Как я могу добавить значение int i к базовому имени "Life" и интерпретировать его как одно из изображений?

Заранее спасибо!

1 ответ

Решение

Если я вас правильно понимаю, у вас есть серия именованных изображений на вашей странице, и вы хотите установить свойства для каждого из них.

Предполагая, что у вас есть различные изображения в вашем проекте, сохраненные как Life1, Life2, Life3 и т. Д., Вы просто создаете для них имя на основе префикса ("Life") и индекса (I).

Попробуй это:

for (int i=1; i<limit; i++)
{
    string name = "Life" + i.ToString();
    Image img = (Image)this.FindName(name);
    // set properties of img here
}

При условии, что this ссылается на текущую страницу в вашем приложении, это будет искать дочерние элементы для одного с указанным именем.

Альтернатива - просто перебирать каждое изображение в стеке.

Если вы называете панель, скажем, "ImageList", то ваш код может выглядеть так:

foreach (Image item in ImageList.Children)
{
    // do stuff to item here
}

При необходимости вы можете запросить item для его имени, и установите свойства соответственно.

Другие вопросы по тегам