2016-09-29 113 views
0

我正在更新以前工作的應用程序。測試顯示,當縮放使包含的圖像的一部分脫離屏幕時,ScrollViewer表現出奇怪的行爲。原始應用程序是使用VS 2013創建的通用Windows應用程序。雖然目標版本已經轉移到週年紀念版上,但新應用程序是使用VS 2015創建的通用Windows應用程序。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的縮放級別。縮放更改是使用SV1.ChangeView(null,null,zoomFactor)實現的。

圖像明顯地改變了屏幕上的大小,但是當它們從右邊或底部脫落時滾動條不會出現。即使將可見性屬性更改爲「可見」而不是「自動」,也不會導致滾動條出現。當尺寸發生變化時,在短暫的時間內,細條應出現在應該出現的位置,然後消失。另外,像通常移動鼠標滾輪一樣滾動的用戶輸入什麼也不做。

基於其他評論,我試着用沒有明顯效果的Grid替換StackPanel。

我在畫空白。有任何想法嗎?

+0

通常的原因是ScrollViewer正在擴展以適應其內容。嘗試在包含它的網格上設置VerticalAlignment =「Stretch」 - 但這將取決於整個上下文,直到窗口。對我來說,這是XAML非常痛苦的一部分。 –

回答

0

看起來答案是下一個控件,它共享需要在XAML中設置爲可見性=「摺疊」的相同視覺空間。可見性是以編程方式控制的,但沒有XAML標籤,前一個控件的滾動條不會出現,並且不會顯示其標籤。