网格布局问题

时间:2012-01-09 15:44:52

标签: wpf layout grid

我有以下xaml:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="150"/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="1">
        <TextBox Width="120" Text="Search" Margin="10"/>
        <Button>Search</Button>
    </StackPanel>
</Grid>

在设计器和正在运行的应用程序中,按钮的右边缘被切断,但前提是文本框右侧有边距。如何在不切断按钮的情况下创建两者之间的分离。这是一个错误吗?

编辑: StackPanel位于第1列而不是第0列。此外,单击按钮后,按钮边框会重新出现。窗口大小为525,网格是唯一的东西。

2 个答案:

答案 0 :(得分:1)

这不是一个错误 - 120px宽度(文本框)+按钮宽度的组合,当它的内容是字符串“搜索”(无论可能是什么)+第一个150px column比Grid的容器分配的空间宽。

您期望发生什么?滚动条?

答案 1 :(得分:1)

将您的第一个ColumnDefintion的宽度设置为自动

我猜测由于未定义宽度,因此它们都是*,这意味着它们的宽度相等。通过将1st设置为Auto,您可以告诉它占用所需的空间,然后让第二列填充剩余的空间。