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