在WPF中添加/减去GridLength

时间:2009-10-14 07:22:25

标签: c# wpf gridlength

我有三列包含左右两列的两个扩展器。当两个扩展器都崩溃时,我需要在整个窗口的中间列中存放内容。为此,我需要计算网格长度。

例如

GridLength w1= new GridLength( 20 );
GridLength w2= new GridLength( 50 );
GridLength w3= new GridLength( 0 );

如何获得

w3 = w2 - w1

1 个答案:

答案 0 :(得分:1)

尝试此操作:将展开式ColumnDefinitions的宽度设置为Auto,将中间的宽度设置为1个星级单位。通过在其内容上设置宽度来控制可扩展列的宽度。然后当它们折叠时,中间列应该展开以填充可用空间。

示例:

<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>

希望这有帮助