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.
Fix column layout blocks not added from block picker (BUG #7)
Details
The block type picker's InsertBlockType() switch statement had no
cases for columns_2, columns_3, or columns_2_wide_left. Selecting
any column layout from the "/" palette or Add Block button silently
did nothing.
Fix: add AddColumnsBlock relay command to NotesViewModel that
delegates to the existing CreateBlockFromTypeId() (which already
handles all three column variants). Wire the three column type IDs
in the picker's switch statement to call the new command.
Fix SplitPaneLayout: use Border hosts instead of ContentPresenter
Details
ContentPresenter outside a ControlTemplate doesn't reliably present
Control content in Avalonia. Replaced with Border hosts that use
Child property directly.
Also fixed MeasureOverride: was returning availableSize which could
contain Infinity, causing the layout system to give zero size. Now
clamps infinite dimensions and measures each child with its
proportional share of space.
Fix cover image buttons unclickable and positioned wrong (BUG #2)
Details
Cover image action buttons (Change/Reposition/Remove) were positioned
at top-right with Margin="0,44,12,0", placing them directly under the
ToolbarHoverZone (ZIndex=1, Height=120 when cover exists). The hover
zone captured all pointer events before they reached the buttons.
Fix: move buttons to bottom-right of the cover (VerticalAlignment=
Bottom, Margin="0,0,12,28") and set ZIndex=2 so they float above the
toolbar hover zone. Buttons now appear on cover hover and are fully
clickable.
Add SplitPaneLayout shared control to UI.Adaptive
Details
Code-only Border subclass with a custom inner Panel that arranges
two content panes and a draggable resize handle using ratio-based
math. Avoids the star-column minimum width issues that plague
Grid-based split implementations.
Properties: Ratio (pane2 fraction), MinRatio, MaxRatio, HandleSize,
Pane1, Pane2. Fires RatioChanged event on drag release for
persistence. During drag, uses an internal _dragRatio for live
feedback without updating the bound property on every pixel.
Replaces the inline resize logic pattern found in Tasks and Data
plugins with a single reusable component.
Get notified about new releases