在 C#(商店应用程序)中循环多个 controls/elements

Loop down multiple controls/elements in C# (Store App)

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

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

提前致谢!

如果我没理解错的话,您的页面中有一系列命名图像,您希望为每个图像设置属性。

假设您的项目中有各种图像存储为 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 其名称,并相应地设置属性。