【问题标题】:Grid column definitions网格列定义
【发布时间】:2013-08-24 17:25:25
【问题描述】:

在同一个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?

【问题讨论】:

    标签: xaml windows-phone-7 layout grid


    【解决方案1】:

    将第一列的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>
    

    【讨论】:

    • 您的解决方案效果很好。但是,自从我删除了根 StackPanel 后,我以前的代码现在也可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多