标题说明了一切 - 如何从堆栈面板中删除除第一个项目之外的所有项目? Clear() 只是将它们全部删除,在这种情况下不起作用。 RemoveAt() 并没有真正的帮助。在任何给定时间,堆栈面板中都没有固定数量的项目。
最佳答案
panel.Children.RemoveRange(1, panel.Children.Count - 1);
请参阅 RemoveRange
函数 ( MSDN )。
上面的代码将第二个项目中的所有子元素移除到计数 - 1(因为您希望保留第一个元素)。
对于 Windows Phone 8,您没有该功能,因此您需要执行以下操作:
//Reversed to avoid the collection mutation exception
foreach (UIElement item in panel.Children.Skip(1).Reverse())
panel.Remove(item);
没有那么“聪明”,但它很简短,很明显你在做什么!
关于c# - 从 StackPanel 中删除第一个项目以外的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939456/