我有三列,左列和右列中包含两个扩展器。当两个扩展器都崩溃时,我需要在整个窗口的中间列中排列内容。为此,我需要计算网格长度。
例如
GridLength w1= new GridLength( 20 );
GridLength w2= new GridLength( 50 );
GridLength w3= new GridLength( 0 );
怎么获得
w3 = w2 - w1
我有三列,左列和右列中包含两个扩展器。当两个扩展器都崩溃时,我需要在整个窗口的中间列中排列内容。为此,我需要计算网格长度。
例如
GridLength w1= new GridLength( 20 );
GridLength w2= new GridLength( 50 );
GridLength w3= new GridLength( 0 );
怎么获得
w3 = w2 - w1
试试这个:将可扩展的宽度设置ColumnDefinitions
为Auto
和中间的一到一星单位。通过设置其内容的宽度来控制可扩展列的宽度。然后当它们折叠时,中间的列应该扩展以填充可用空间。
例子:
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Expander Margin="0" VerticalAlignment="Top" Header="Expander" ExpandDirection="Right">
<Grid>
<Grid HorizontalAlignment="Left" Width="100" Background="Blue" Height="100"/>
</Grid>
</Expander>
<Expander Grid.Column="2" Margin="0" VerticalAlignment="Top" Header="Expander" ExpandDirection="Left">
<Grid>
<Grid HorizontalAlignment="Left" Width="100" Background="Blue" Height="100"/>
</Grid>
</Expander>
<Grid Background="Aquamarine" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" />
</Grid>
希望这可以帮助