Учитывая следующий XAML, моя цель состоит в том, чтобы столбцы AAA, BBB, CCC всегда были видны.Колонки со списками могут изменить размер до нуля.
Если я удаляю ListBoxes, тогда приложение работает именно так, как я хочу.То есть он не имеет странного поведения, когда минимальные ширины не соблюдаются.
Со списками (или DataGrids) следующее XAML имеет такое поведение:
После запуска приложения,если я перетаскиваю разделитель SpA как можно ближе к BBB (BBB будет сохранять желаемую ширину 25), затем перетаскиваем разделитель B вправо, тогда AAA будет иметь желаемую ширину 25.
НаС другой стороны, после запуска приложения, если я перетаскиваю splitterA до конца вправо (AAA сохранит желаемую ширину 25), затем перетаскиваем splitterB до конца вправо, тогда AAA исчезнет с экрана.Удивительно, но если я затем перетащу сплиттер всего на один пиксель влево, тогда оба столбца «защелкнутся» в правильном месте.
<Grid Background="CadetBlue" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
<ColumnDefinition MinWidth="60"/>
</Grid.ColumnDefinitions>
<TextBlock Text="CCC" Width="25" />
<ListBox Grid.Column="1" />
<GridSplitter Width="5" Grid.Column="2" Name="splitterB" HorizontalAlignment="Left" />
<Grid Background="Aqua" Grid.Column="2" Margin="5,0,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
<ColumnDefinition MinWidth="30"/>
</Grid.ColumnDefinitions>
<TextBlock Text="BBB" Width="25" />
<ListBox Grid.Column="1" />
<GridSplitter Width="5" Grid.Column="2" Name="splitterA" HorizontalAlignment="Left" />
<Grid Background="BurlyWood" Grid.Column="2" Margin="5,0,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="AAA" Width="25" />
<ListBox Grid.Column="1" />
</Grid>
</Grid>
</Grid>
Почему это работает, когда я удаляю списки?
Примечание. Я немного изменил вопрос и код XAML, чтобы прояснить ситуацию, а также показать, что я только что нашел в списках.