Рисование Adorner пользовательского элемента управления без обрезки, но над элементами управления ниже

У меня есть поля в документе, которые отображаются как пользовательские элементы управления в окне WPF (внутри вкладок).

Мне нужно было сделать функцию автопоиска, которая отображает результаты под полем.

Я пошел с украшателем, содержащим элементы управления внутри (список).

Первая проблема заключается в том, что я не смог получить доступ к слою adorner для элемента управления внутри UserControl.

Я пошел с поиском AdornerLayer окна. К сожалению, если бы я поместил в него ободок, я бы его нигде не увидел.

Следующей попыткой было поместить AdornerDecorator в UserControl.

Это работало нормально, если я рисовал надписью над элементом управления:

Выше

Однако, если бы я поместил автора под текстовым полем, элементы управления ниже были бы нарисованы над ним:

Есть ли способ заставить этот второй случай "ниже" работать должным образом?

1 ответ

Вы уже пробовали использовать Popup? Всплывающее окно также является тем, что ComboBox использует afaik, так что я думаю, что это именно то, что вы ищете.

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

Другие вопросы по тегам