Quick answer: A Full Rect anchor only stretches as much as its parent. If the parent is a fixed-size Control, the child can’t exceed it. Make every ancestor up to the root stretch.
A background Panel set to anchor preset Full Rect stays a fixed size when the window resizes. Its parent Control wasn’t Full Rect, so it can’t stretch beyond it.
Anchors Are Relative
Anchor presets snap a Control’s edges to its parent’s rect. Full Rect means “match my parent” — not “match the window”. If the parent doesn’t track the window, neither do you.
Chain of Full Rects
From your Control up to the CanvasLayer (or root Viewport), every Control in the chain needs to stretch. A common offender: a wrapper Control left at its default 100×100 between your UI and the root.
Use Containers Where Possible
For complex layouts, swap raw Controls for HBoxContainer / VBoxContainer / MarginContainer. Containers actively size children — anchors don’t come into it. Far less foot-gun-prone for resizable UI.
CanvasLayer at the Top
A CanvasLayer covers the viewport regardless of camera. Anchor your full-screen UI’s root to it; the chain ends there cleanly.
Verifying
Resize the window. The background Panel grows to match. Children with their own anchor presets behave correctly relative to it.
“Anchors stretch within the parent. The whole chain must stretch for the child to reach the window.”
For resizable UI, prefer Containers over hand-tuned anchors — they survive layout changes without re-anchoring everything.