Невозможно удалить ребенка в WPF

1

У меня есть равномерная сетка, в которую динамически добавляются прямоугольники. Я хочу удалить конкретный прямоугольник, но при попытке передать его методу Remove я получаю следующую ошибку:

Невозможно преобразовать из "System.Drawing.Rectangle" в "System.Windows.UIElement"

Мой код:

        Rectangle swatch = (Rectangle)ug_Thumbnails.FindName("s_" + _instance);
        ug_Thumbnails.Children.Remove(swatch);

Я попробовал кастинг и получил сообщение о том, что вы не можете этого сделать.

EDIT: по запросу здесь создается код для создания прямоугольника:

        System.Windows.Shapes.Rectangle swatch = new System.Windows.Shapes.Rectangle();
        swatch.Width = 50;
        swatch.Height = 50;
        swatch.Margin = new Thickness(0, 5, 5, 0);
        swatch.StrokeThickness = 1;
        swatch.Stroke = System.Windows.Media.Brushes.Gray;
        swatch.Name = "s_" + name.ToString();
        double groupsize = 100 / colors.Count();
        DrawingBrush blackBrush = new DrawingBrush();
        DrawingGroup checkersDrawingGroup = new DrawingGroup();
        List<SolidColorBrush> brushes = colors;
        double location = 0;
        for (int i = 0; i < colors.Count(); i++)
        {
            GeometryDrawing drawing = new GeometryDrawing(brushes[i], null,
                new RectangleGeometry(new Rect(location, 0, groupsize, groupsize)));
            checkersDrawingGroup.Children.Add(drawing);
            location += groupsize;
        }
        blackBrush.Drawing = checkersDrawingGroup;
        swatch.Fill = blackBrush;
        swatch.MouseUp += new MouseButtonEventHandler(loadSwatchResources);

        ug_Thumbnails.Children.Add(swatch);
  • 0
    Не могли бы вы показать пример, как вы добавляете то же самое.
Теги:
wpf

1 ответ

2
Лучший ответ

Вам нужно использовать Rectangle в System.Windows.Shapes при попытке ссылаться на прямоугольник в WPF. Это специально для прямоугольников в WPF и, как таковое, немного отличается от класса прямоугольника System.Drawing. Вы должны иметь возможность использовать эту версию прямоугольника, поскольку она происходит из FrameworkElement. См. Http://msdn.microsoft.com/en-us/library/system.windows.shapes.rectangle(v=vs.110).aspx для получения дополнительной информации.

  • 0
    Ты прав! Огромное спасибо. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню