feat(ui): make island layout user-resizable with grid splitters

Replaces fixed 260/*/320 columns with two GridSplitters between Lists/Tasks/Details. Min widths preserved (200/320/280). Right splitter hides when ShowDetails is false.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-04-25 09:37:25 +02:00
parent a6ca1c0108
commit e192285f5d

View File

@@ -141,15 +141,42 @@
</Border.Background>
</Border>
<!-- Three islands -->
<Grid Grid.Row="2" Margin="7" ColumnDefinitions="260,*,320">
<!-- Three islands (user-resizable) -->
<Grid Grid.Row="2" Margin="7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260" MinWidth="200"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" MinWidth="320"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="320" MinWidth="280"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Classes="island" Margin="7">
<islands:ListsIslandView DataContext="{Binding Lists}"/>
</Border>
<Border Grid.Column="1" Classes="island" Margin="7">
<GridSplitter Grid.Column="1"
Width="3"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ResizeDirection="Columns"
ResizeBehavior="PreviousAndNext"/>
<Border Grid.Column="2" Classes="island" Margin="7">
<islands:TasksIslandView DataContext="{Binding Tasks}"/>
</Border>
<Border Grid.Column="2" Classes="island" Margin="7"
<GridSplitter Grid.Column="3"
Width="3"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ResizeDirection="Columns"
ResizeBehavior="PreviousAndNext"
IsVisible="{Binding ShowDetails}"/>
<Border Grid.Column="4" Classes="island" Margin="7"
IsVisible="{Binding ShowDetails}">
<islands:DetailsIslandView DataContext="{Binding Details}"/>
</Border>