非常基本的WPF布局问题

时间:2009-11-20 01:01:37

标签: c# wpf layout user-interface

                                                                                                       

如何将此列表框设置为maxiumum,即填充其中的组框。 我试过width =“auto”Height =“auto”,width =“stretch”Height =“stretch”

此刻令人烦恼的是,它动态地调整大小到任何填充它 - (我想不出任何情况你想要一个列表框来做但是无论如何) - 或者我只能静态地设置它的大小。

干杯!

2 个答案:

答案 0 :(得分:3)

问题是StackPanels试图占用尽可能少的空间。

只需删除它们就可以了。

<GroupBox>
    <ListBox />
</GroupBox>

如果这不符合你的情况,我们需要更多关于ListBox去向的上下文。

DockPanels也可以使控件耗尽剩余空间。 DockPanel中的最后一项使用所有剩余空间(只要您没有设置LastChildFill = false)。

下面的示例允许TextBlock在顶部占用尽可能多的空间,然后使用ListView的GroupBox占用其余部分。

<DockPanel>
    <TextBlock DockPanel.Dock="Top" Text="My TextBlock Text" />
    <GroupBox>
        <ListBox />
    </GroupBox>
</DockPanel>

答案 1 :(得分:1)

如果要填充大小,则应使用Grids而不是StackPanels。

<Grid>
  <GroupBox>
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
      </Grid.ColumnDefinitions>
      <Grid.RowDefinitions>
        <RowDefinition Height="*" />
      </Grid.RowDefinitions>
      <ListBox />
    </Grid>
  </GroupBox>
</Grid>

如果您真的想要StackPanels,可以在StackPanel上使用HorizontalContentAlignment="Stretch"VerticalContentAlignment="Stretch"