我有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面板的尺寸未知。
如何切换列的可见性并适当调整大小?
答案 0 :(得分:2)
您需要设置可隐藏列的宽度&#34;自动&#34;,然后在每个网格列中包含的控件上设置宽度(40,100,256)。
现在您指定列始终采用一定的大小 - 如果将它们设置为“自动”,则第三列(宽度为*)将隐藏它们隐藏时提供的任何空间。
正如@Blam所说,你需要使用Visibility.Collapsed才能正常工作 - 隐藏在这里不会被删除,因为隐藏的控件仍占用空间。
答案 1 :(得分:1)
必须是30个字符
Visibility.Collapsed;