#wpf #events
#wpf #Мероприятия
Вопрос:
У меня есть Inkcanvas в моем проекте (MyPaint), Как называется событие для добавления или удаления дочерних элементов (UIElement) из InkCanvas. например, я хочу обработать это событие: myInkCanvas.Дочерние элементы.remove(myRectangle) или этот пример: myInkCanvas.Дочерние элементы.Добавить(myRectangle)
Ответ №1:
Вы не можете прослушать событие, которое запускается при добавлении элементов в коллекцию дочерних элементов или удалении из нее. Вызывается виртуальный защищенный метод, который вы могли бы использовать, называемый OnVisualChildrenChanged.
Это напрямую не привязано к коллекции дочерних элементов, поскольку элементы могут добавлять / удалять визуальные элементы отдельно от этого. Но для InkCanvas это, вероятно, было бы безопасно.
Итак, вы бы использовали что-то вроде:
public class MyInkCanvas : InkCanvas {
protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) {
// TODO: Raise event or do something
base.OnVisualChildrenChanged(visualAdded, visualRemoved);
}
}
Ответ №2:
Для чего именно вам это нужно? Можете ли вы вместо этого использовать событие StrokeCollected?
Комментарии:
1. Нет события strokeCollected, используемого для объекта stroke, и не используемого для пользовательского элемента, например, объектов rectangle или ellipse