我有以下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,网格是唯一的东西。
答案 0 :(得分:1)
这不是一个错误 - 120px宽度(文本框)+按钮宽度的组合,当它的内容是字符串“搜索”(无论可能是什么)+第一个150px column比Grid的容器分配的空间宽。
您期望发生什么?滚动条?
答案 1 :(得分:1)
将您的第一个ColumnDefintion的宽度设置为自动
我猜测由于未定义宽度,因此它们都是*
,这意味着它们的宽度相等。通过将1st设置为Auto
,您可以告诉它占用所需的空间,然后让第二列填充剩余的空间。