首页 > 解决方案 > Xamarin Forms - 从 C# 中的 StackLayout 中删除子元素

问题描述

在 XAML 页面的代码隐藏中,我正在检查模型中的文本字段是否为空,如果不是,我使用该字段更新标签文本属性,如果为空,我想将其从 XAML 中完全删除。

起初我尝试将 IsVisible 设置为 false 并将 HeightRequest 设置为 0,但我仍然可以在 stackLayout 中看到标签所在的空间,所以我尝试从主堆栈中删除包含标签的内部堆栈

TopStack.Children.Remove(addressStack);

但是我仍然可以看到已删除堆栈所在的空间。

我有办法完全移除内部堆栈,包括它会占用的空间吗?

标签: c#xamlxamarin.forms

解决方案


您可以使用theStack.Children.Remove(textField);来从堆栈中删除元素。

如果您知道元素在堆栈中的位置,则可以使用 remove at

  theStack.Children.RemoveAt(positionInStack);

如果要删除内部堆栈,它是外部堆栈的子级和文本字段的父级,请使用

outerStack.Children.Remove(textField.parent);

我希望这些信息对你有帮助!


推荐阅读