【问题标题】:Add/Subtract GridLength in WPF在 WPF 中添加/减去 GridLength
【发布时间】:2010-12-06 14:10:43
【问题描述】:

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

举例

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

如何获得

w3 = w2 - w1

【问题讨论】:

  • 为什么这种计算对你有用?
  • 我有三列,左右两列分别包含两个扩展器。当两个扩展器都折叠时,我需要在整个窗口的中间列中排列内容。
  • 您可以将中间列设置为Star GridLength 以允许自动调整大小。无需摆弄计算。

标签: c# wpf gridlength


【解决方案1】:

试试这个:将可扩展的ColumnDefinitions 的宽度设置为Auto,并将中间的1 设置为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>

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2015-06-30
    相关资源
    最近更新 更多