When you’re creating a Grid in xaml you can define the RowDefinitions as such
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
I have a need to do the same thing in code. I know I can write
RowDefinition row = new RowDefinition();
row.Height = new GridLength(1.0, GridUnitType.Star);
but that doesn’t help me much since I’ve got a string coming in. I could probably create my own “string to GridLength” converter but this doesn’t feel right since it works ever so smooth from xaml. Of course, I’ve tried the following but it doesn’t work
row.Height = new GridLength("*");
What am I missing here?
The
GridLengthstruct has aTypeConverterdefined which is being used when instantiated from Xaml. You can use it in code as well. It’s calledGridLengthConverterIf you look at
GridLength.cswith Reflector it looks like this. Notice theTypeConverterYou can use it like