2013-06-14 3 views
0

У меня есть панель с ярлыками, текстовыми полями и списками ComboBoxes, а код позади устанавливает видимость для видимости или свертывания в зависимости от выбора пользователя из ComboBox за пределами указанной панели. Каким будет лучший способ устранить пробелы в панели и получить все элементы, видимые с правой стороны сетки (уменьшите позицию столбца, если в нижней части предыдущего столбца находятся пустые ячейки)? Какой тип панели я должен использовать? Должен ли я разделить их на отдельные панели?Упорядочение элементов сетки в зависимости от видимости других элементов

Edit:

Вот плохая интерпретация Excel, что я хотел бы случиться: http://imgur.com/ZVRh6Yq

я принципиально хочу, чтобы все идти в верхнем левом углу

+0

'и коды за наборы видимости к видимому или collapsed' - Не используйте код позади. Создайте правильный ViewModel. WPF не является winforms. Изучите MVVM. –

+0

@HighCore, я не согласен. Не каждое приложение WPF должно использовать MVVM. Если приложение представляет собой просто облегченную утилиту, которая не нуждается в частом обслуживании, чем отсутствие обработчиков событий в коде позади не обязательно плохо. Как и во всех лучших практиках и шаблонах проектирования, они вознаграждаются только тогда, когда преимущество повышает вес сложности. – moranlf

ответ

0

Это трудно понять ваши макет без какой-либо диаграммы или эскиза, но я думаю, вы можете остаться с макетом Grid, если вы установите ширину строки/ширину столбца на «авто». Это приведет к тому, что каждая строка/столбец сетки будет достаточно большой, чтобы представить свой собственный контент.

Вы также можете использовать другие типы макетов, такие как StackPanel или DockPanel, они дают вам меньше контроля над позиционированием ваших элементов управления, но обеспечивают удобную автоматическую компоновку.

EDIT:

Вы можете использовать WrapPanel, чтобы получить ожидаемые результаты:

<WrapPanel Orientation="Vertical"> 
    <Label/> 
    <TextBox/> 
    <ComboBox/> 
</WrapPanel> 
+0

См. Править – user2487482

+0

Я обновил свой ответ в соответствии с вашим эскизом – moranlf

+0

Благодарим за помощь, пришлось настроить размер, чтобы получить форму в форме, а не список входов, но работает как шарм! – user2487482

Смежные вопросы