Mam dość prosty układ, wygląd:WPF GridSplitter dziwne zachowanie podczas Column width = „Auto”
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="200"></ColumnDefinition>
<ColumnDefinition Width="5"></ColumnDefinition>
<ColumnDefinition Width="Auto" MinWidth="50"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
BorderBrush="Red"
BorderThickness="2">
<!-- Any picture-->
<Image Source="/Resources/PreviewTest.png"></Image>
</Border>
<GridSplitter Grid.Column="1"
Width="5"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
ResizeBehavior="PreviousAndNext"></GridSplitter>
<Expander Grid.Column="2"
ExpandDirection="Left"
BorderBrush="RoyalBlue"
BorderThickness="2">
<!-- Any picture-->
<Image Source="/Resources/PreviewTest.png"></Image>
</Expander>
</Grid>
Problem: gdy jestem przeciągając GridSplitter
do lewa, prawa kolumna wychodzi z okna granicy, jak pokazano w animacji. Zauważyłem, że dzieje się tak, gdy szerokość trzeciej kolumny jest ustawiona na "Auto" (Width="Auto"
). Jeśli ustawię Width="*"
GridSplitter
działa dobrze i trzeci Column
nie wychodzi z obramowania okna. Dlaczego tak się dzieje, gdy Width="Auto"
?