2016-09-29 1 views
0

Ich arbeite an der Aktualisierung der zuvor funktionierenden App. Tests zeigen, dass der ScrollViewer merkwürdig wirkt, wenn der Zoom einen Teil der enthaltenen Bilder vom Bildschirm fallen lässt. Die ursprüngliche App wurde mit VS 2013 als universelle Windows-App erstellt. Die neue App wird mit VS 2015 als universelle Windows-App erstellt, obwohl das Zielbuild auf die Jubiläumsversion verschoben wurde.ScrollViewer Bildlaufleisten werden nicht angezeigt

Meine XAML definiert so:

<ScrollViewer x:Name="SV1" Grid.Row="1" HorizontalScrollBarVisibility="Auto" 
     VerticalScrollBarVisibility="Auto" 
     SizeChanged="SV1_SizeChanged" ZoomMode="Enabled" >    
    <StackPanel x:Name="ImagePanel" Orientation="Horizontal" HorizontalAlignment="Center" 
      VerticalAlignment="Top" > 
     <Image x:Name="ImageLeft" Stretch="Uniform" /> 
     <Image x:Name="ImageRight" Stretch="Uniform" /> 
    </StackPanel> 
</ScrollViewer> 

Der Benutzer kann die Zoomstufe des Scroll ändern. Die Zoomänderung wird mithilfe von SV1.ChangeView (null, null, zoomFactor) implementiert.

Die Bilder ändern sichtbar die Größe auf dem Bildschirm, aber wenn sie von rechts oder unten fallen, erscheinen die Bildlaufleisten nicht. Selbst wenn Sie die Sichtbarkeitseigenschaften auf "Sichtbar" statt auf "Automatisch" ändern, werden die Bildlaufleisten nicht angezeigt. Wenn sich die Größe ändert und für einen kurzen Moment erscheint eine dünne Linie, wo die Balken sein sollten und dann verschwinden. Außerdem führt eine Benutzereingabe, die normalerweise wie das Bewegen des Mausrads blättert, nichts aus.

Basierend auf anderen Kommentaren habe ich versucht, das StackPanel durch ein Gitter ohne offensichtlichen Effekt zu ersetzen.

Ich zeichne eine leere. Irgendwelche Ideen?

+0

Der übliche Grund dafür ist, dass der ScrollViewer erweitert wird, um seinen Inhalt aufzunehmen. Versuchen Sie, VerticalAlignment = "Stretch" auf dem Grid zu setzen, das es enthält - aber das hängt vom gesamten Kontext ab, vom Fenster. Dieses Zeug ist für mich ein sehr schmerzhafter Teil von XAML. –

Antwort

0

Es scheint, die Antwort ist das nächste Steuerelement, das denselben visuellen Raum teilt, muss im XAML auf Visibility = "Collapsed" festgelegt werden. Die Sichtbarkeit wird programmgesteuert gesteuert, aber ohne das XAML-Tag erscheinen die Bildlaufleisten des vorherigen Steuerelements nicht und mit dem Tag, das sie ausführen.

Verwandte Themen