90d95b9ff8
Korrekte Ursachenanalyse: Im Zoom-Modus schrumpft der viewStack auf Inhalts-Größe (ImageView). Ist der Inhalt kleiner als der Viewport, positioniert ScrollPane den viewStack links/oben – setHvalue(0.5) ist wirkungslos, weil nichts zu scrollen ist. Alle bisherigen runLater/ ChangeListener/AnimationTimer-Ansätze haben am falschen Hebel gedreht. Korrekter Fix: viewportBoundsProperty-Listener im Konstruktor zwingt viewStack auf mindestens Viewport-Größe. Pos.CENTER zentriert dann die ImageView automatisch, wenn sie kleiner ist; bei größerem Inhalt bleibt die Mindestgröße wirkungslos und der ScrollPane scrollt normal. Ersatzlos entfernt: AnimationTimer-Block in applyZoom (wasInFitMode- Zweig), Folge-Schritt-runLater (else-Zweig), setHvalue(0.5)/setVvalue(0.5) in resetToFitView. Bindings in resetToFitView bleiben unverändert. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>