2016-09-29 5 views
0

Я работаю над обновлением ранее работающего приложения. Тестирование показывает, что ScrollViewer действует странно, когда Zoom делает часть содержащихся изображений падающей с экрана. Первоначальное приложение было создано с VS 2013 как универсальное приложение Windows. Новое приложение создано с VS 2015 как универсальное приложение Windows, хотя целевая сборка была перенесена на юбилейный выпуск.ScrollViewer scrollbars не отображается

Мой 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> 

Пользователь может изменить ZoomLevel в ScrollViewer. Изменение масштаба реализовано с использованием SV1.ChangeView (null, null, zoomFactor).

Изображения заметно меняют размер на экране, но по мере их падения справа или снизу полосы прокрутки не отображаются. Даже изменение свойств видимости на «Видимый» вместо «Авто» не приводит к появлению полос прокрутки. Когда размер изменится и на короткое мгновение появится тонкая линия, где должны быть полосы, а затем исчезнуть. Кроме того, пользовательский ввод, который обычно прокручивается, как перемещение колеса мыши, ничего не делает.

Основываясь на других комментариях, я попытался заменить StackPanel сеткой без видимого эффекта.

Я рисую пробел. Есть идеи?

+0

Обычная причина этого в том, что ScrollViewer расширяется, чтобы разместить его содержимое. Попробуйте установить VerticalAlignment = «Stretch» ​​на Grid, который содержит его, но это будет зависеть от всего контекста, от окна. Для меня это очень болезненная часть XAML. –

ответ

0

Кажется, что ответ следующий контроль, который разделяет то же визуальное пространство, должен быть установлен на Видимость = «Свернуто» в XAML. Видимость контролируется программно, но без тега XAML полосы прокрутки предыдущего элемента управления не отображаются и с тегом, который они выполняют.

Смежные вопросы