Answered by:
How to make xaml controls(TextBox) in WPF to fill remaining space of Grid?

Question
-
How to make element Stretch/file parent cell of Grid without specifying height and with for respective element?
Here is my code:-
<Grid Margin="15px 0 15px 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ListBox Name="entryListBox" Grid.Column="0" Margin="0 0 7.5px 0"/>
<StackPanel Grid.Column="1" Margin="7.5px 0 0 0" >
<Grid Margin="0 25px 0 25px">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="25" />
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" >Title:</TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Name="titleText" />
<TextBlock Grid.Row="1" Grid.Column="0" >Url:</TextBlock>
<TextBox Grid.Row="1" Grid.Column="1" Name="urlText" />
<TextBlock Grid.Row="2" Grid.Column="0">Date:</TextBlock>
<TextBox Grid.Row="2" Grid.Column="1" Name="dateText" />
<TextBlock Grid.Row="3" Grid.Column="0">Body:</TextBlock>
<TextBox Grid.Row="3" Grid.Column="1" Name="bodyText" TextWrapping="Wrap" HorizontalContentAlignment="Stretch" Height="400"/>
</Grid></StackPanel>
</Grid>Here is the main code:-
<TextBox Grid.Row="3" Grid.Column="1" Name="bodyText" TextWrapping="Wrap" HorizontalContentAlignment="Stretch" Height="400"/>
How to stretch TextBox without specifying height attribute?
Deepak Kumar Singh
- Edited by ideepaksingh Thursday, September 12, 2013 12:07 PM Correction
Thursday, September 12, 2013 12:04 PM
Answers
-
Do this:
<Grid Margin="15 0 15 0" Background="Black"> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"></ColumnDefinition> <ColumnDefinition Width="50*"></ColumnDefinition> </Grid.ColumnDefinitions> <ListBox Name="entryListBox" Grid.Column="0" Margin="0 0 7 0"/> <Grid Margin="0 25 0 25" x:Name="MyGrid" Grid.Column="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="50" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="25" /> <RowDefinition Height="25" /> <RowDefinition Height="25" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" >Title:</TextBlock> <TextBox Grid.Row="0" Grid.Column="1" Name="titleText" /> <TextBlock Grid.Row="1" Grid.Column="0" >Url:</TextBlock> <TextBox Grid.Row="1" Grid.Column="1" Name="urlText" /> <TextBlock Grid.Row="2" Grid.Column="0">Date:</TextBlock> <TextBox Grid.Row="2" Grid.Column="1" Name="dateText" /> <TextBlock Grid.Row="3" Grid.Column="0">Body:</TextBlock> <TextBox Grid.Row="3" Grid.Column="1" Name="bodyText" TextWrapping="Wrap" /> </Grid> </Grid>
StackPanel minimizes the amount of area it occupies, so it's forcing the textbox to get as small as it can be.
Matt Small - Microsoft Escalation Engineer - Forum Moderator
If my reply answers your question, please mark this post as answered.
NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.
- Edited by Matt SmallMicrosoft employee, Moderator Thursday, September 12, 2013 2:50 PM
- Marked as answer by ideepaksingh Friday, September 13, 2013 9:28 AM
Thursday, September 12, 2013 2:48 PMModerator
All replies
-
Do this:
<Grid Margin="15 0 15 0" Background="Black"> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"></ColumnDefinition> <ColumnDefinition Width="50*"></ColumnDefinition> </Grid.ColumnDefinitions> <ListBox Name="entryListBox" Grid.Column="0" Margin="0 0 7 0"/> <Grid Margin="0 25 0 25" x:Name="MyGrid" Grid.Column="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="50" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="25" /> <RowDefinition Height="25" /> <RowDefinition Height="25" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" >Title:</TextBlock> <TextBox Grid.Row="0" Grid.Column="1" Name="titleText" /> <TextBlock Grid.Row="1" Grid.Column="0" >Url:</TextBlock> <TextBox Grid.Row="1" Grid.Column="1" Name="urlText" /> <TextBlock Grid.Row="2" Grid.Column="0">Date:</TextBlock> <TextBox Grid.Row="2" Grid.Column="1" Name="dateText" /> <TextBlock Grid.Row="3" Grid.Column="0">Body:</TextBlock> <TextBox Grid.Row="3" Grid.Column="1" Name="bodyText" TextWrapping="Wrap" /> </Grid> </Grid>
StackPanel minimizes the amount of area it occupies, so it's forcing the textbox to get as small as it can be.
Matt Small - Microsoft Escalation Engineer - Forum Moderator
If my reply answers your question, please mark this post as answered.
NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.
- Edited by Matt SmallMicrosoft employee, Moderator Thursday, September 12, 2013 2:50 PM
- Marked as answer by ideepaksingh Friday, September 13, 2013 9:28 AM
Thursday, September 12, 2013 2:48 PMModerator -
Thank you..
Deepak Kumar Singh
Friday, September 13, 2013 9:28 AM