使 ListBox 填充父容器的宽度

4
我有一个DockPanel,里面有一个listbox。 Dockpanel成功填充了整个窗口的宽度。现在,我想让Listbox填充整个DockPanel的宽度。
我试过很多方法...包括将网格包装在周围,并将列设置为*的宽度,将列表框的horizontalalignment设置为stretch,以及其他很多方法。我似乎无法让这个愚蠢的listbox填满宽度。
这个listbox确实有一个ItemTemplate,但是它内部的所有内容都具有水平拉伸和自动宽度。每当您将ItemTemplate的宽度设置为某些静态值时,listbox会适当地调整大小。我只是不能让它填满父文件。
谢谢。
编辑:
感谢大家让我意识到这是我的问题...原来这是样式标签中的笨拙。
我现在将尝试删除此问题。
4个回答

5
我猜你的ListBox填满了其父容器的宽度,但ListBox中的ListBoxItems在水平方向上没有拉伸。尝试添加以下样式: ```css .listbox-item { width: 100%; } ```
 <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
         <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> 
     </Style> 
 </ListBox.ItemContainerStyle> 

4

默认情况下,ListBox 应该填充 DockPanel。

我刚刚尝试了以下代码:

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

它完美地运行了。如果没有您代码的片段,那么很难确定问题在哪里。



1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接