【发布时间】:2011-04-20 12:55:00
【问题描述】:
我遇到了一个不知道如何解决的布局问题。这是我的 xaml 的样子,
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid x:Name="abc" Grid.Row="0" Grid.Column="0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0"></Button>
<TextBox Grid.Row="0" Grid.Column="1"></TextBox>
</Grid>
</Grid>
<Grid Grid.Row="0" Grid.Column="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0"></Button>
<TextBox Grid.Row="0" Grid.Column="1"></TextBox>
</Grid>
</Grid>
</Grid>
现在上面的 xaml 的布局正是我想要的。但是,我还有一个额外的要求。在运行时,我需要使网格“abc”可折叠。另一个网格需要填充整个宽度。如果我使用星号宽度,那么如果“abc”被折叠,它的行为更像是隐藏而不是折叠。 Collapse 似乎适用于自动调整大小的宽度,但它并没有根据需要给我按比例调整大小。有没有办法做到这一点。请注意,我只能访问 Grids、StackPanels 和 Canvas 来布局我的项目(没有 DockPanel)。请让我知道任何想法以及任何代码 sn-ps。谢谢。
【问题讨论】:
标签: c# wpf silverlight xaml