none
canvas и группа шейпов RRS feed

  • Вопрос

  • Как сгруппировать некоторые созданные объекты в одну группу так, чтобы эта группа была как sender? Чтобы потом с помощью обработчика не искать элементы, которые надо удалить, а удалить сразу этот sender(эта группа объектов). важно, чтобы у всех шейпов был один канвас - родитель.
    • Перемещено Tagore Bandlamudi 3 октября 2010 г. 0:37 MSDN Forums consolidation (От:Форум по .NET Framework)

Ответы

  • Да  хотя бы по имени.

    Например, имеешь 200 прямоугольниуов: 100 из них относишь к одной группе и 100 оставшихся к остальной, имена задаешь так

    foreach(...){ currentRect.Name = "group1" + randomString; }

    foreach(...){ currentRect.Name = "group2" + randomString; }

    Ну а затем фильтруешь по имени

      private void button1_Click(object sender, RoutedEventArgs e)
      {
       var group1rects = canv.Children.OfType<Rectangle>().Where(rect => rect.Name.StartsWith("group1")).ToList();
       foreach (var item in group1rects)
       {
        canv.Children.Remove(item);
       }
    
      }

    Или использовать свойство Tag типа Object, туда вы вобще можете любой маркер принадлежности засунуть

    • Помечено в качестве ответа oBun-JIokoc 6 мая 2010 г. 12:55

Все ответы

  • Да  хотя бы по имени.

    Например, имеешь 200 прямоугольниуов: 100 из них относишь к одной группе и 100 оставшихся к остальной, имена задаешь так

    foreach(...){ currentRect.Name = "group1" + randomString; }

    foreach(...){ currentRect.Name = "group2" + randomString; }

    Ну а затем фильтруешь по имени

      private void button1_Click(object sender, RoutedEventArgs e)
      {
       var group1rects = canv.Children.OfType<Rectangle>().Where(rect => rect.Name.StartsWith("group1")).ToList();
       foreach (var item in group1rects)
       {
        canv.Children.Remove(item);
       }
    
      }

    Или использовать свойство Tag типа Object, туда вы вобще можете любой маркер принадлежности засунуть

    • Помечено в качестве ответа oBun-JIokoc 6 мая 2010 г. 12:55
  • Про Tag можно подробнее? как с помощью этого свойства, допустим, сгруппировать ellipse, polygon и textblock в канвасе?  а потом эту группу удалить. к сожалению, в справке подробностей нет...