c# - Xamarin Forms - 从 C# 中的 StackLayout 中删除子元素
问题描述
在 XAML 页面的代码隐藏中,我正在检查模型中的文本字段是否为空,如果不是,我使用该字段更新标签文本属性,如果为空,我想将其从 XAML 中完全删除。
起初我尝试将 IsVisible 设置为 false 并将 HeightRequest 设置为 0,但我仍然可以在 stackLayout 中看到标签所在的空间,所以我尝试从主堆栈中删除包含标签的内部堆栈
TopStack.Children.Remove(addressStack);
但是我仍然可以看到已删除堆栈所在的空间。
我有办法完全移除内部堆栈,包括它会占用的空间吗?
解决方案
您可以使用theStack.Children.Remove(textField);
来从堆栈中删除元素。
如果您知道元素在堆栈中的位置,则可以使用 remove at
theStack.Children.RemoveAt(positionInStack);
如果要删除内部堆栈,它是外部堆栈的子级和文本字段的父级,请使用
outerStack.Children.Remove(textField.parent);
我希望这些信息对你有帮助!
推荐阅读
- python - 在 sklearn 的 .fit() 方法中使用 numpy.ndarray 与 Pandas Dataframe
- apache-flink - 使用 Flink CEP 测量事件时间延迟
- amazon-web-services - 使用 Lambda 触发器和预留容量处理 AWS SQS 的错误
- reactjs - startSubscription 从未调用过
- linux - 库版本会在 Debian 的下一个版本中变得不可用吗?
- java - 如何从命令行生成 Java 文件的串行版本 UID?
- c++ - 错误打印二维字符数组
- python-3.x - Apache PySpark 的字数统计程序
- android - React Native:推送通知正在冻结 iOS 上的应用程序(白屏)
- apache-spark - 阅读时忽略Spark中排序文件的镶木地板摘要文件(_metadata)?