Я пытаюсь упорядочить интерфейс WPF следующим образом:
- В верхней части окна находятся некоторые элементы управления самоопределяющейся высотой (фактически прикрепленные к вершине окна, но такие высокие, как они хотят быть).
- Под этими элементами управления находится ListView. ListView может содержать переменное количество элементов, каждый из которых имеет разную высоту. Проблема: ListView не должен быть выше, чем нужно. Если все элементы в представлении списка будут легко вписываться в окно, я хочу, чтобы ListView был точно высотой, чтобы показать все его элементы (поэтому окно выглядит как макет веб-страницы с пустым пространством внизу). С другой стороны, если все элементы ListView не будут вписываться в окно, я хочу, чтобы весь пользовательский интерфейс соответствовал окну (как будто номер 3 ниже было пристыковано к нижней части окна, и ListView заполнял доступное пространство). Все это должно динамически изменяться, когда пользователь изменяет размер окна и/или нажимает кнопки, которые изменяют содержимое списка.
- Под списком ListView находятся некоторые элементы управления самоопределяющейся высотой. Они должны отображаться непосредственно под ListView во все времена, без пробелов. В частности, они не должны просто пристыковываться к нижней части окна, если они будут соответствовать непосредственно в ListView.
Решения будут очень приветствуемыми; Я поработал некоторое время и сумел заставить вещи работать кроме элементов управления под ListView, используя внешний DockPanel в окне с первыми элементами управления, прикрепленными к вершине, и ListView, заполняющим оставшиеся но установите значение VerticalAlignment = "Top".
Чистое решение XAML было бы идеальным, но я не против кода, если это неизбежно. Бонусные баллы за решение, которое позволяет собрать несколько таких устройств вертикально:) Спасибо за любую помощь!