WPF Grid Row / Column Sizing in Proportion to DesiredSize?

Posted by sinibar on Stack Overflow See other posts from Stack Overflow or by sinibar
Published on 2010-03-27T09:59:53Z Indexed on 2010/03/27 10:03 UTC
Read the original article Hit count: 489

Filed under:
|

I have two user controls arranged vertically in a grid, both of which can expand to be taller than the grid can accommodate. I've put them in each in a scrollviewer which functionally works. What I want though is to give them them space in proportion to the amount that they want at run time.

So if there's 500 height available, the upper control wants 400 and the lower 600, the upper control would get 200 and the bottom 300.

I have no idea at design time how much space each will want in proportion to the other, so using 1*, 2* etc. for row height won't work for me.

I can hand-code run-time proportional sizing, but am I missing a simple trick in XAML that would get me what I want?

Context is as follows (trimmed for brevity)...

<Grid>
    <TabControl>
        <TabItem>
            <Grid>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <GroupBox Grid.Row="0" Header="Title Area" />
                    <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
                        <UserControl />
                    </ScrollViewer>
                    <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto">
                        <UserControl />
                    </ScrollViewer>
                </Grid> 
            </Grid>
        </TabItem>
    </TabControl>    
</Grid>

© Stack Overflow or respective owner

Related posts about wpf

Related posts about xaml