2016-04-11 5 views
0

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

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

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

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

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

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

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

Above

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

enter image description here

Есть ли способ, чтобы этот второй «нижний» корпус работал правильно?

+0

Вы пытались использовать [ZIndex] (https://msdn.microsoft.com/en-us/library/system.windows.controls.panel.zindex%28v=vs.110%29.aspx)? – icebat

ответ

0

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

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