fix(ui): move the tasks list inset off the ListBox onto the panel
Padding on RowsListBox mirrored the ScrollViewer.Padding-excluded-from- Extent trap fixed elsewhere today, so move the 10,4 inset onto the VirtualizingStackPanel's Margin instead, matching the other scrollables. Headless measurement showed Avalonia's Fluent ListBox template actually forwards Padding onto PART_ItemsPresenter's margin already (content side), so this particular control was never affected -- both variants produce an identical Extent and a fully visible last row at max scroll. Kept the change for consistency and corrected the CLAUDE.md gotcha to reflect the verified behavior instead of assuming the same trap applied.
This commit is contained in:
@@ -91,15 +91,17 @@
|
||||
|
||||
<!-- Task list: one flat, virtualized ListBox. Rows is HeaderRow | TaskRowViewModel — group
|
||||
headers are regular entries, not a separate ItemsControl per section, so a
|
||||
VirtualizingStackPanel actually bounds the realized container count. -->
|
||||
VirtualizingStackPanel actually bounds the realized container count.
|
||||
Inset lives on the panel, NOT on the ListBox: Avalonia 12 leaves ScrollViewer.Padding
|
||||
out of the Extent, so at max scroll the last row would sit below the viewport and stay
|
||||
unreachable. -->
|
||||
<ListBox x:Name="RowsListBox"
|
||||
ItemsSource="{Binding Rows}"
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Padding="10,4">
|
||||
BorderThickness="0">
|
||||
<ListBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<VirtualizingStackPanel/>
|
||||
<VirtualizingStackPanel Margin="10,4"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ListBox.ItemsPanel>
|
||||
<ListBox.Styles>
|
||||
|
||||
Reference in New Issue
Block a user