我有一个StackPanel,它在DataGrid的顶部垂直堆叠DockPanel:
<StackPanel Orientation="Vertical"...etc...
<DockPanel>
<Label DockPanel.Dock="Left"...etc... />
<Button DockPanel.Dock="Right" ...etc.../>
</DockPanel
<DataGrid ...etc...
</DataGrid
</StackPanel
DataGrid绑定到一个集合,因此它的列数仅在运行时才知道。我希望Label控件与DataGrid的左边缘对齐,而Button控件与右边缘对齐,因此I&#m; m使用的面板排列。问题是StackPanel不会将其宽度限制为其内容的宽度,而是扩展到其容器的宽度。结果是当StackPanel的容器(窗口)逐渐变大时,Button将延伸到DataGrid控件的右边缘之外。如何将StackPanel维度限制为其内容的总维度?
答案 0 :(得分:1)
诀窍是将StackPanel放在双列Grid的最左侧列中:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" ... etc...>
</StackPanel>
</Grid>