Я занимаюсь разработкой UserControl, назовите его CoolControl, который должен действовать как окно, с несколькими специальными функциями. Пока что его можно изменить и перетащить по всему экрану. Если я добавлю несколько объектов CoolControl в окно приложения с помощью XAML, последний объявленный объект всегда будет впереди. Это хорошо, но я хочу сделать так, чтобы, если я нажму на один из моих объектов CoolControl во время выполнения, этот элемент управления окажется перед всеми остальными элементами управления.
Я пытался использовать Canvas.SetZIndex
, но если я просто не могу найти достаточно умное решение, я не понимаю, как это может мне помочь. Потому что, как только я установил Z-индекс одного элемента управления на 9999, через какое-то время каждый другой элемент управления, на который я нажимаю, будет иметь то же значение 9999. И затем, снова, элемент управления, объявленный последним, оказывается впереди.
Если бы вам дали задание написать метод BringToFront () для чьего-либо UserControl, как бы вы сделали это как можно проще? Я бы предпочел лучшее решение, чем получить родительское окно, пройтись по всем элементам управления, найти максимальный Z-индекс, а затем соответственно установить Z-индекс CoolControl, если ЭТО является даже допустимым решением.