I creating a control for WPF, and I have a question for you WPF gurus out there.
I want my control to be able to expand to fit a resizable window.
In my con
You problem arises, because Control
s within a ScrollViewer
have virtually unlimited space available. Therefore your inner ListBox
thinks it can avoid scrolling by taking up the complete height necessary to display all its elements. Of course in your case that behaviour has the unwanted side effect of exercising the outer ScrollViewer
too much.
The objective therefore is to get the ListBox
to use the visible height within the ScrollViewer
iff there is enough of it and a certain minimal height otherwise. To achieve this, the most direct way is to inherit from ScrollViewer
and override MeasureOverride() to pass an appropriately sized availableSize
(that is the given availableSize
blown up to the minimal size instead of the "usual" infinity) to the Visual
s found by using VisualChildrenCount and GetVisualChild(int).