如何通过数据类型从 StackLayout 获取子级?

1 c# xamarin

我有一个堆栈布局,其中包含一长串具有不同视图的子项,如图像、标签等。

namespace bizclos1{
  public class Page1 : ContentPage
{
    public Button SaveLabel= new Button();
    public Button SaveImage = new Button();
    public StackLayout TotalStackLayout = new StackLayout();

    public Page1 ()
    {
        SaveLabel.Clicked += SaveLabel_Clicked;
        SaveImage.Clicked += SaveImage_Clicked;
        Content = new StackLayout {
            Children = {
                SaveImage,
                SaveLabel,
                TotalStackLayout
            }
        };
    }

    private void SaveImage_Clicked(object sender, EventArgs e)
    {
        Image IMG = new Image();
        TotalStackLayout.Children.Add(IMG);
    }

    private void SaveLabel_Clicked(object sender, EventArgs e)
    {
        Label LBL = new Label();
        TotalStackLayout.Children.Add(LBL);
    }
}
Run Code Online (Sandbox Code Playgroud)

}

第一个问题

我想知道是否可以仅选择标签,如果可以我该怎么做?

第二个问题

另外,我如何选择特定索引的子级,例如索引 4 的子级?

Jas*_*son 5

您可以用来LINQ仅选择Label元素

using System.Linq;

var labels = TotalStackLayout.Children.Where(x => x is Label).ToList();
Run Code Online (Sandbox Code Playgroud)

按索引选择元素

var item = TotalStackLayout.Children[4];
Run Code Online (Sandbox Code Playgroud)