Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF: WrapPanel in ItemsPanelTemplate expands list width

I have a listbox defined like this:

    <ListBox.ItemTemplate>
        <DataTemplate>
            <ItemsControl>
                <!-- Contents here -->
            </ItemsControl>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

My problem is this: This list is contained in a grid control, and should use all the available space of that cell its contained in, but it shouldn't force the parent to allocate MORE space. But what happens is that once the wrap panel fills up, instead of actually wrapping the items to the next line (as it should), it just expands the width of the listbox, and in the process forces the parent grid to resize as well.

How can I get the wrap panel to respect the size of its parent, and not force it to expand its size?

Thanks in advance!

edit: One more thing. I can set the width of the wrappanel explicitly to make it wrap, but I would like the wrappanel to have the same size as the listbox.

like image 335
Hallgeir Avatar asked Jul 02 '10 12:07

Hallgeir


1 Answers

Set ScrollViewer.HorizontalScrollBarVisibility="Disabled" and the WrapPanel will wrap.

<Grid>
    <ListBox
        ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>
</Grid>
like image 200
Wallstreet Programmer Avatar answered Oct 23 '22 09:10

Wallstreet Programmer