2014-12-02 3 views
2

У меня есть 4 панели, расположенные по одной колонке за другой. Каждая панель фиксирована, за исключением третьей, которая должна быть как можно больше.Столы с изменяемой площадью сетки

Я хочу, чтобы можно было видеть видимость 1-й, 2-й и 4-й панелей.

Я попытался с помощью сетки и просто переключая различные столбцы:

<Grid Grid.Row="1" Name="ResizablePanels"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="40" Name="gridColTools"/> 
     <ColumnDefinition Width="100" Name="gridColStamps"/> 
     <ColumnDefinition Width="*" Name="gridColCanvas"/> 
     <ColumnDefinition Width="256" Name="gridColPropertiesAndLayers"/> 
    </Grid.ColumnDefinitions> 
    ... 
<Grid> 

, но это просто скрывает панель фактически не репозиционирование и изменения размера 3-й панели.

Я также пробовал обертка, но я не мог заставить это работать, потому что размер 3-й панели неизвестен.

Как я могу переключать видимость столбцов и изменять их размер соответствующим образом?

ответ

2

Вам нужно сделать ширину скрываемых столбцов «Авто», а затем установить ширины (40, 100, 256) на элементах управления, которые содержатся в каждом столбце сетки.

Прямо сейчас вы указываете, что ваши столбцы всегда будут иметь определенный размер - если вы установите их в Auto, третий столбец (с шириной *) впитает любое пространство, которое они предоставляют, когда вы их скроете.

Как отметил @Blam, вам нужно будет использовать Visibility.Collapsed для этого, чтобы он работал правильно. Скрытый не будет вырезать его здесь, поскольку скрытые элементы управления все еще занимают место.

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