Все UIElement
имеют UID, который является строкой. Вы можете установить UID линий диапазона в нечто предсказуемое. Имейте в виду, что UID должен быть уникальным. Затем, когда вам нужно удалить только линии сетки, вы перебираете коллекцию Children, собирая список элементов пользовательского интерфейса, которые необходимо удалить, а затем удаляете их.
Примерно так:
Canvas c = new Canvas();
c.Children.Add( new UIElement() { Uid = "Line1" } );
c.Children.Add( new UIElement() { Uid = "Line2" } );
c.Children.Add( new UIElement() { Uid = "Line3" } );
c.Children.Add( new UIElement() { Uid = "Text1" } ); //This is added as a sample
List<UIElement> itemstoremove = new List<UIElement>();
foreach (UIElement ui in c.Children)
{
if (ui.Uid.StartsWith("Line"))
{
itemstoremove.Add(ui);
}
}
foreach (UIElement ui in itemstoremove)
{
c.Children.Remove(ui);
}
Это должно сработать. Быстрый тест этого кода в отладке показывает количество детей в 1, при этом в списке присутствует только UIElement
с Uid of Text1.