网格列定义

时间:2013-08-24 08:45:09

标签: xaml windows-phone-7 layout grid

在同一个StackPanel内,我想把一个控件放在左边,另一个放在右边。我尝试使用Grid并定义ColumnDefinitions,但没有运气。

<StackPanel Orientation="Horizontal">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="72" />
                        </Grid.ColumnDefinitions>

                        <StackPanel HorizontalAlignment="Left" Grid.Column="0" Orientation="Horizontal">
                             <Button />
                        </StackPanel>

                        <StackPanel HorizontalAlignment="Right" Grid.Column="1">
                            <Button Height="72" Width="72" />     
                        </StackPanel>
                    </Grid>
                </StackPanel>

第一列通常占总宽度的50%到80%(取决于内容),而第二列总是占用72px。如何设置第一列以使其填充总Grid宽度减去72px?

1 个答案:

答案 0 :(得分:0)

将第一列的Width属性设置为Star

    <ColumnDefinition Width="*" />

在代码中进行更改应该有效:

<StackPanel>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="72" />
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Column="0" Orientation="Horizontal">
            <Button />
        </StackPanel>

        <StackPanel HorizontalAlignment="Right" Grid.Column="1">
            <Button Height="72" Width="72" />
        </StackPanel>
    </Grid>
</StackPanel>