I have a custom control ListBox that I would like to adjust its size according to the size of its ItemsPanel. For the items panel, I have a custom control WrapPanel that arranges the items accordingly. As you can see in the screen shot, the ListBox prefers to size itself to its parent control or availableSize.
So then I tried to make a custom control Grid, that had an ItemsSource property that handed the items to its listbox. But that didn't work either. When the Grid would arrange, then the ListBox would Arrange, which would cause the Grid to Arrange and so on.
So my question is, how to I create a custom control that has an ItemsSource property and an ItemsPresenter that sizes itself according to the contents of its children??
Best Answer
You just have to set your ListBox HorizontalAlignment to Left, and VerticalAlignment to Top. This should do the trick.
Simple example :
MainWindow.xaml
EDIT : It also works in a Binding scenario :
MainWindow.xaml
MainWindow.xaml.cs