Wpf 使列表框填充父容器的宽度

Wpf 使列表框填充父容器的宽度,wpf,listbox,wpf-controls,Wpf,Listbox,Wpf Controls,我有一个DockPanel,里面有一个列表框。dockpanel成功地填充了整个窗口的宽度。现在,我希望列表框填充整个DockPanel的宽度 我试过很多东西。。。包括环绕网格并将列的宽度设置为*、将列表框的水平对齐设置为拉伸,以及许多其他设置。我似乎无法让这个愚蠢的列表框填充宽度 此列表框确实有一个ItemTemplate,但其中的所有内容都具有自动宽度的水平拉伸对齐。无论何时将ItemTemplate的宽度设置为静态值,listbox都会相应地调整大小。我就是不能让它填满父母的肚子 谢谢 编

我有一个DockPanel,里面有一个列表框。dockpanel成功地填充了整个窗口的宽度。现在,我希望列表框填充整个DockPanel的宽度

我试过很多东西。。。包括环绕网格并将列的宽度设置为*、将列表框的水平对齐设置为拉伸,以及许多其他设置。我似乎无法让这个愚蠢的列表框填充宽度

此列表框确实有一个ItemTemplate,但其中的所有内容都具有自动宽度的水平拉伸对齐。无论何时将ItemTemplate的宽度设置为静态值,listbox都会相应地调整大小。我就是不能让它填满父母的肚子

谢谢

编辑:

谢谢你们让我意识到这是我的错。。。原来是样式标签上的错误


现在,我将尝试删除此问题。

一个列表框应通过default填充DockPanel

我刚才试过:

<DockPanel>
  <ListBox Background="Red" />
</DockPanel>


它工作得很好。如果没有您的代码片段,我们将很难看到问题所在。

我敢打赌,您的列表框填充了其父容器的宽度,但是列表框中的ListBoxItems没有水平延伸。尝试添加以下样式:

 <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
         <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> 
     </Style> 
 </ListBox.ItemContainerStyle> 

您还可以使用
DockPanel.LastChildFill
属性:


我必须从列表框中删除所有“对齐”属性才能使其正常工作。确保已从列表框定义中删除水平对齐和垂直对齐指定。一旦我这样做了,并按照上面的建议将其包装在DockPanel中,我就能够让它工作了