0

我有元素列表框:

<ListBox ItemsSource="{Binding collection}" >
  <ListBox.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Black" />
  </ListBox.Resources>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Expander Header="{Binding stuff}">
      <!-- stuff -->
      </Expander>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

当列表中的扩展器之一展开时,列表会自动调整其高度。当扩展器变窄时( ?? 不确定是否是这个词),列表框的高度保持不变。效果是列表框的高度只能越来越大。有没有办法让高度调整到实际需要的空间?

顺便说一句,我使用了 ListBox.Resources 所以列表框中的选定项目不会被突出显示。我可以在样式中设置它,所以每个列表框都会这样吗?

4

1 回答 1

0

这是由于列表框的默认项目面板。尝试如下更新项目面板:

      <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
          <DockPanel IsItemsHost="True" LastChildFill="False"/>
        </ItemsPanelTemplate>
      </ListBox.ItemsPanel>
于 2013-09-25T08:23:28.900 回答