You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XAML代码中通过点击按钮向指定位置动态添加命名为Test01、Test02…的Label控件?

点击按钮动态添加命名Label的实现方案

没问题,这个需求很容易实现,只需要两步:先给XAML里的目标容器设置可引用的名称,然后在后台代码里处理点击事件来创建并添加Label控件。

第一步:修改XAML代码,给目标StackLayout命名

首先你需要给那个要动态添加Label的空StackLayout加上x:Name属性,这样后台代码才能直接引用到它。修改后的XAML核心片段如下:

<ScrollView>
    <!--Labels should be add here programmatically every time the button clicked-->
    <StackLayout x:Name="DynamicLabelContainer" />
</ScrollView>

第二步:编写后台C#代码处理点击事件

打开你的TabbedMainPage.xaml.cs文件,添加一个计数器变量来追踪Label的序号,然后在按钮的点击事件方法里创建Label、设置命名并添加到容器中:

// 声明一个计数器,初始值为1
private int _labelCounter = 1;

private void Button_Clicked(object sender, EventArgs e)
{
    // 创建新的Label控件
    var newLabel = new Label
    {
        // 设置Label的名称,按照Test01、Test02的格式生成
        Name = $"Test{_labelCounter:D2}",
        // 设置显示文本,方便直观看到效果
        Text = $"当前Label:{newLabel.Name}",
        // 可选:添加样式让Label更显眼
        FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
        Margin = new Thickness(0, 10, 0, 0)
    };

    // 将新Label添加到目标StackLayout容器中
    DynamicLabelContainer.Children.Add(newLabel);

    // 计数器自增,确保下次点击生成下一个序号的Label
    _labelCounter++;
}

关键说明

  • $"Test{_labelCounter:D2}"里的D2是格式化规则,能把序号自动补成两位数字(比如1→01、2→02),刚好匹配你要的命名格式。
  • 如果你需要验证Label的名称是否正确,可以在调试模式下查看newLabel.Name属性,或者在代码里添加日志输出确认。
  • 注意后台代码里的DynamicLabelContainer必须和XAML里的x:Name完全一致,Xamarin.Forms对名称大小写是敏感的。

这样每次点击"Add New Item"按钮,就会在指定位置自动添加一个符合命名规则的Label控件了。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 20:27:27