One window, and it is the list of containers — name, image, state, uptime and the ports, because a published 8080 is the thing you actually wanted. It reads /events as the daemon writes it, so nothing here polls and nothing needs a refresh button.
WPF on the built-in Fluent theme with ThemeMode="System", so light and dark follow the OS with no extra package. Empty is a designed state: “the engine is not running” offers a Start button, “no containers” does not.