В следующем примере есть два ряда Grid
с высотой 6*
и 4*
. Проблема в том, что только после того, как пользователь изменит размер окна, вычисляется правильная высота строк. Это происходит только тогда, когда установлен флаг SizeToContent
.
Любые идеи, почему? Как заставить окно автоматически вычислять высоту при ее загрузке?Wpf Высота рядов сетки не вычисляется правильно с помощью SizeToContent
<Window x:Class="TestGridRow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="Height">
<Grid x:Name="grid">
<Grid.RowDefinitions>
<RowDefinition x:Name="row0" Height="6*"/>
<RowDefinition x:Name="row1" Height="4*"/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" x:Name="textBox" TextWrapping="Wrap"
HorizontalScrollBarVisibility="Auto" IsReadOnly="True" xml:space="preserve">
Hallo
Hallo
Hallo
</TextBox>
<TextBlock Background="Red" Grid.Row="1"/>
</Grid>
3,5 или 4? Я думаю, что есть некоторые проблемы с вычислением размера сетки и строки в 4. – Will
В основном 2010/4, но то же самое происходит и в 2008/3.5. – Elad
В конструкторе для класса вы можете установить параметр SizeToContent после рендеринга с помощью Диспетчера. – Rachel