私は以前働いていたアプリケーションのアップデートに取り組んでいます。テストでは、ズームが含まれている画像の一部が画面から外れると、ScrollViewerが異常な動作をすることが示されます。元のアプリはUniversal WindowsアプリとしてVS 2013で作成されました。ターゲットビルドが記念日のリリースに移行したが、新しいアプリケーションはユニバーサルWindowsアプリケーションとしてVS 2015で作成されています。ScrollViewerスクロールバーが表示されない
私のXAMLは、そのように定義されています
<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>
ユーザーは、ScrollViewerののZoomLevelを変更することができます。ズームの変更は、SV1.ChangeView(null、null、zoomFactor)を使用して実装されます。
画像のサイズは画面上で目に見える程度に変わりますが、画像のサイズが右または下になると、スクロールバーが表示されません。 Visibilityプロパティを "Auto"ではなく "Visible"に変更しても、スクロールバーは表示されません。サイズが変わると、短い瞬間に細い線が現れて消えてしまいます。さらに、マウスホイールを動かすような通常スクロールするユーザー入力は何もしません。
他の解説に基づいて、私はStackPanelをグリッドに置き換えようとしましたが、明らかな効果はありませんでした。
私は空白を描いています。何か案は?
通常の理由は、ScrollViewerがそのコンテンツに対応するように拡張されているためです。それを含むグリッドでは、VerticalAlignment = "Stretch"を設定してみてください。しかし、これはコンテキスト全体に依存し、ウィンドウに依存します。このことは、XAMLの非常に痛い部分です。 –