1

我有多个图像要循环并设置其属性。

来自 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”的基本名称并将其解释为图像之一?

提前致谢!

4

1 回答 1

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其名称,并相应地设置属性。

于 2015-07-24T15:19:15.367 回答