标题说明了一切 - 如何从堆叠面板中删除除第一个之外的所有项目? Clear()只是将它们全部删除,在这种情况下无法工作。 RemoveAt()并没有真正帮助。在任何给定时间,堆栈面板中都没有设定数量的项目。
答案 0 :(得分:2)
panel.Children.RemoveRange(1, panel.Children.Count - 1);
请参阅RemoveRange
函数(MSDN)。
上面的代码将第二项中的所有子项删除到count - 1(因为你想保留第一个元素)。
对于Windows Phone 8,您无法获得该功能,因此您需要执行以下操作:
//Reversed to avoid the collection mutation exception
foreach (UIElement item in panel.Children.Skip(1).Reverse())
panel.Remove(item);
不是"聪明"但它的简短,显而易见的是你在做什么!