2016-09-29 33 views
0

私は以前働いていたアプリケーションのアップデートに取り組んでいます。テストでは、ズームが含まれている画像の一部が画面から外れると、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をグリッドに置き換えようとしましたが、明らかな効果はありませんでした。

私は空白を描いています。何か案は?

+0

通常の理由は、ScrollViewerがそのコンテンツに対応するように拡張されているためです。それを含むグリッドでは、VerticalAlignment = "Stretch"を設定してみてください。しかし、これはコンテキスト全体に依存し、ウィンドウに依存します。このことは、XAMLの非常に痛い部分です。 –

答えて

0

答えは、同じビジュアルスペースを共有する次のコントロールがXAMLでVisibility = "Collapsed"に設定されている必要があります。可視性はプログラムによって制御されますが、XAMLタグを使用しない場合、前のコントロールのスクロールバーは表示されず、タグが表示されます。

関連する問題