将列宽定义为剩余的未使用像素

时间:2014-01-09 04:31:22

标签: wpf xaml

我想定义两列。第二个是1280px宽,第一个是剩余的未使用像素。怎么做?

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*" />
            <RowDefinition Height="9*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="REST OF THE WIDHT" />
            <ColumnDefinition Width="1280" />
        </Grid.ColumnDefinitions>
</Grid>

2 个答案:

答案 0 :(得分:1)

您使用RowDefinition

找到了正确的想法
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*" />
        <RowDefinition Height="9*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="1280" />
    </Grid.ColumnDefinitions>
</Grid>

星号大小基本上告诉布局引擎你希望如何按照比例将子元素可用空间除以子元素。

以下是一些可能有用的文章:

Star Sizing

WPF Tutorial

答案 1 :(得分:1)

您确定需要硬编码宽度吗?在运行浏览器时调整浏览器大小并查看其外观。如果对一列或每行使用“自动”,然后对另一列使用“1 *”,它将使用所需内容填充“自动”,然后其余部分转到第二个。

我认为这可能会对你更好:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="1*" />
    </Grid.ColumnDefinitions>
</Grid>

然后,您开始使用ScrollViewers获取可能比其容器更大的内容。