WPF:ItemsPanelTemplate中的WrapPanel扩展了列表宽度

Hal*_*eir 6 size wpf wrappanel parent

我有一个像这样定义的列表框:

    <ListBox.ItemTemplate>
        <DataTemplate>
            <ItemsControl>
                <!-- Contents here -->
            </ItemsControl>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我的问题是这个:这个列表包含在一个网格控件中,并且应该使用它所包含的那个单元格的所有可用空间,但它不应该强制父级分配更多空间.但是,一旦填充面板填满,而不是实际将项目包装到下一行(应该如此),它只会扩展列表框的宽度,并在此过程中强制父网格也调整大小.

如何让包装面板尊重其父级的大小,而不是强制它扩大其大小?

提前致谢!

编辑:还有一件事.我可以显式设置wrappanel的宽度以使其换行,但我希望wrappanel具有与列表框相同的大小.

Wal*_*mer 17

设置ScrollViewer.HorizontalScrollBarVisibility="Disabled"WrapPanel将包裹.

<Grid>
    <ListBox
        ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>
</Grid>
Run Code Online (Sandbox Code Playgroud)