Fix task list items expanding beyond left pane width
Details
Root cause: the ListBox in flat sub-mode was wrapped in a redundant
outer ScrollViewer that offered infinite horizontal width during
measure, bypassing the pixel-constrained Grid column width. Since
ListBox already has its own internal ScrollViewer for vertical
scrolling, the outer one was unnecessary and broke width constraint
propagation.
- Remove redundant outer ScrollViewer around flat sub-mode ListBox,
move IsVisible binding to ListBox directly
- Add HorizontalScrollBarVisibility="Disabled" to GTD and Calendar
sub-mode ScrollViewers (these use ItemsControl which has no built-in
scroll, so the outer ScrollViewer is needed but must not offer
unconstrained horizontal space)
Enable Avalonia DevTools in debug builds (F12)
Details
Calls mainWindow.AttachDevTools() in #if DEBUG so the built-in
element inspector, visual tree viewer, and layout visualizer are
available via F12 during development.
Revert to inline Grid split with pixel-based ColumnDefinitions
Details
The SplitPaneLayout custom Control wasn't constraining content width
properly — items expanded beyond pane bounds regardless of Clip,
ClipToBounds, or measure constraints.
Replaced with a standard Grid where ColumnDefinitions start as star
(*) sizing for initial layout, then get switched to pixel-based
GridLength values in OnLoaded + SizeChanged. Pixel-based columns
give the Grid's layout engine an exact width budget for each column,
and content is properly constrained. ClipToBounds on each pane
handles any remaining overflow.
The resize handle, drag interaction, and ratio persistence all work
through the ColumnDefinition.Width property — no FindControl for
child panels needed.
SplitPaneLayout: force clip geometry on panes in ArrangeOverride
Details
When a child's DesiredSize exceeds the arranged rect, ArrangeCore
may let the child render at its desired width, overflowing into the
adjacent pane. ClipToBounds on the parent Control doesn't reliably
clip in this scenario. Now explicitly sets Clip = RectangleGeometry
on each pane after arrange, guaranteeing content stays within its
allocated region.
Rewrite SplitPaneLayout as direct Control with own layout
Details
The Border→SplitPanel→Border-host chain wasn't properly constraining
child content width. Rewrote as a Control subclass that directly
manages Pane1, Pane2, and the resize handle as visual/logical
children, with MeasureOverride and ArrangeOverride that measure each
child with its exact proportional width constraint and arrange at
exact rects. No intermediate containers to lose constraints.
Get notified about new releases