在 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
其名称,并相应地设置属性。
我有多个图像要循环播放并设置其属性。
来自 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
其名称,并相应地设置属性。