我认为这可以解决问题:
((Layout)view.Parent).Children.Remove(view);
但是,显然Layout.Children
仅供内部使用,并且返回IReadOnlyList
,因此我无法Remove
进行任何操作。
答案 0 :(得分:1)
如果您知道父容器的实际类型,那么它将起作用:
((StackLayout)view.Parent).Children.Remove(view);
否则,您可以执行以下操作:
var layout = (Layout)view.Parent;
switch (layout)
{
case StackLayout s:
s.Children.Remove(view);
break;
case AbsoluteLayout a:
a.Children.Remove(view);
break;
case Grid g:
g.Children.Remove(view);
break;
~~~
}