Цикл нескольких элементов управления / элементов в 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
для его имени, и установите свойства соответственно.