с помощью следующего кода, который, как я ожидал, закончится двумя ListBox с той же шириной, что и в двух столбцах с определением с With = "*"
Вместо этого похоже, что размер определяется размером текста вверху ListBox, что не имеет смысла, поскольку этот текст намного меньше, чем ListBox, и, таким образом, TextBlock имеет достаточно места для размещения текст.
<Window x:Class="UnderstandSizing.Window5"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window5"
SizeToContent="WidthAndHeight"
ResizeMode="NoResize" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="Text1longer" Grid.Row="0" Grid.Column="0" x:Name="Test1" />
<TextBlock Text="Text1" Grid.Row="0" Grid.Column="2" />
<ListBox Grid.Row="1" Grid.Column="0" Height="150" />
<ListBox Grid.Row="1" Grid.Column="2" Height="150" />
<TextBlock Grid.Row="2" Grid.ColumnSpan="3" Text="This textblock sets the max width" Width="300" />
</Grid>
</Window>
Функция автоматического определения размеров WPF сводит меня с ума ... есть идеи? Спасибо.
РЕДАКТИРОВАТЬ: Все, что было сделано в VS2008, на всякий случай.