2014-12-02 86 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> 

但這只是隱藏的面板,而無需實際重新定位和調整第三面板。

我也嘗試了一個wrappanel,但我無法得到這個工作,因爲第三個面板的大小是未知的。

如何切換列的可見性並適當調整大小?

回答

2

你需要讓寬度可隱藏列「自動」,然後就包含在每個網格列中的控件設置寬度(40,100,256)。

現在你所指定的列將始終以一定的規模 - 如果將其設置爲自動,當你把他們藏在第三欄(與寬*)會吸收他們所提供的任何空間。

由於@Blam注意,您將需要使用Visibility.Collapsed使其正常工作 - 隱藏不會在這裏砍它,因爲隱藏控件仍然佔用空間。

1

必須是30個字符

Visibility.Collapsed;