У меня есть форма, где пользователь может выбирать различные элементы формы и перетаскивать их. Поскольку пользователь может настроить макет формы, я использую холст, и все элементы являются его дочерними элементами.
Когда два элемента находятся в одной и той же области, какой бы элемент не был добавлен последним в качестве дочернего элемента холста, он будет нарисован сверху. Я хочу, чтобы любой активный элемент, который перетаскивался, был задан как самый верхний элемент.
Я играл с методом SetZOrder, установив его на 0, но он ничего не делает. После проверки всех моих элементов, вызывающих GetZOrder, я получаю 0 для каждого из них, поэтому установка его в 0 не имеет значения.
Единственное решение, которое я нашел, и оно работает, это удалить и добавить элемент на холст.
_mainCanvas.Children.Remove(_selectedElement);
_mainCanvas.Children.Add(_selectedElement);
Хотя это работает, я чувствую, что должен быть более предпочтительный и правильный способ сделать это.