【问题标题】:How to force a StackPanel to size according to its contents?如何强制 StackPanel 根据其内容调整大小?
【发布时间】:2017-04-27 16:41:07
【问题描述】:

我有一个 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 控件与右边缘对齐,因此我正在使用面板的排列。问题是 StackPanel 不会将其宽度限制为其内容的宽度,而是将其扩展到其容器的宽度。结果是,当 StackPanel 的容器(窗口)逐渐变大时,Button 将超出 DataGrid 控件的右边缘。如何将 StackPanel 尺寸限制为其内容的总尺寸?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    诀窍是将 StackPanel 放在两列 Grid 的最左列:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    
        <StackPanel Grid.Column="0" ... etc...>
        </StackPanel>
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多