You can set a property called Column span. This mean the element you are applying it to will "span" or be as wide as the number of columns you specify. Note you can also do this with grids as well. For you example, change the xaml code of your description label textblock and the bound description textbox to the following:
<TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Text="Description"/>
<TextBlock Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" Text="{Binding Description}"/>
This should stretch those elements to the width of 2 columns. I hope this helps!
Edit: After further consideration I would Imagine you want the "Description:" text to still be included, but only in one box. To do this you'd have to use C# code behind as silverlight will only let a textbox bind to one thing. So instead I would only use:
<TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding DescriptionWithLabel}"/>
and in the C# that you are binding to :
public string DescriptionWithLabel
{
return string.Format("{0} {1}", "Description: ", Description.ToString);
}
**Edit:**Ok, after your most recent comments I would suggest scrapping the DiscriptionWithLabel in the C# code behind and instead go with a stackpanel which contains a label and a textbox. Like so:
<StackPanel Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="4" VerticalAlignment="Stretch">
<TextBlock Content="Description: "/>
<TextBox HorizontalAlignment="Stretch" Width="auto" MinWidth="20" TextWrapping="Wrap" Max Width="60"/>
</StackPanel>