Имеются эллипсы на Canvas:
void Ellipses(double x, double y)
{
var e = new Ellipse()
{
Height = 10,
Width = 10,
Fill = new SolidColorBrush(Color.FromRgb(124, 109, 177)),
Name ="A"
};
canvas.Children.Add(e);
Canvas.SetLeft(e, x - 5);
Canvas.SetBottom(e, y - 5);
list.Add(e);
}
Хочу их удалить. Но проблема в том, что он удаляет не все, а как то пропускает их через одного
void DeleteEllipse()
{
//foreach (UIElement item in canvas.Children)
//{
// if (item is Ellipse)
// canvas.Children.Remove(item);
//}
for (int i = 0; i < canvas.Children.Count; i++)
{
if (canvas.Children[i] is Ellipse)
canvas.Children.RemoveAt(i);
}
}
Почему эллипсы удаляется через один или через два?
Проще всего не возиться с индексами, с риском ошибиться, а удалить всех одним махом:
canvas.Children.Clear();
Если не-эллипсы нужно оставить, попробуйте так:
foreach (var el in canvas.Children.OfType<Ellipse>().ToList())
canvas.Children.Remove(el);
ToList важен.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости