Сделать верхний элемент управления в WPF - PullRequest
1 голос
/ 06 декабря 2011

У меня есть форма, где пользователь может выбирать различные элементы формы и перетаскивать их. Поскольку пользователь может настроить макет формы, я использую холст, и все элементы являются его дочерними элементами.

Когда два элемента находятся в одной и той же области, какой бы элемент не был добавлен последним в качестве дочернего элемента холста, он будет нарисован сверху. Я хочу, чтобы любой активный элемент, который перетаскивался, был задан как самый верхний элемент.

Я играл с методом SetZOrder, установив его на 0, но он ничего не делает. После проверки всех моих элементов, вызывающих GetZOrder, я получаю 0 для каждого из них, поэтому установка его в 0 не имеет значения.

Единственное решение, которое я нашел, и оно работает, это удалить и добавить элемент на холст.

        _mainCanvas.Children.Remove(_selectedElement);
        _mainCanvas.Children.Add(_selectedElement);

Хотя это работает, я чувствую, что должен быть более предпочтительный и правильный способ сделать это.

1 Ответ

1 голос
/ 06 декабря 2011

ZIndex определяет, какой из них самый верхний. Самый высокий ZIndex побеждает. Попробуйте установить ZIndex того, который вы хотите быть самым верхним, на число выше, чем ZIndex других.

...