2017-07-10 50 views
0

我被困在一個點,我必須改變滾動查看器內容的高度,而不管其內容的大小需要多少。通過代碼動態更改ScrollViewer內容的高度

原因是我會有一個非常長的圖像,我不想在滾動時減慢我的圖形用戶界面。因此,我剪切了長圖像,並根據當前的scrollviewer垂直偏移量渲染了它的拼接圖像。

我試圖通過放置一個隱藏長的圖像,以便它不會在滾動上呈現,並且不會有任何滯後來實現它。但我感覺不太好。

有人可以幫助我動態地增加ScrollViewer內容的高度嗎?

的代碼是在這裏:

 <Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="9" Grid.RowSpan="12" Margin="10,60,10,0" > 
    <Image x:Name="StitchedImage" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Stretch="Fill"/> 
    <ScrollViewer x:Name="ImageScrollViewer" Background="Transparent" ScrollChanged="ImageScrollViewer_ScrollChanged" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled"> 
     <Grid VerticalAlignment="Top" HorizontalAlignment="Left" > 
     <Image x:Name="longImageHidden" SnapsToDevicePixels="True" Visibility="Hidden"/> 
     </Grid> 
    </ScrollViewer> 
    </Grid > 
+1

在scrollviewer中給你的網格一個名字,然後在codebehind中手動設置它的高度,只要你想要? –

+0

然後,當圖像高度設置爲相同的值時,渲染高度將不等於渲染高度。 – Anu

+0

我認爲如果我能給一個空白圖像指定只有高度和寬度而沒有任何源,這將是非常酷的。這甚至可能嗎? – Anu

回答

0

我認爲這將是非常酷的,如果我可以只給一個空白圖像specifing只是高度和寬度,沒有任何來源。這甚至可能嗎?

是的,這就是:

<Image Height="1000" /> 

您還可以設置一個ScrollViewerHeight和派生類型的任何其它FrameworkElement

+0

不是圖像的高度屬性,而是空白圖像的實際像素高度。 – Anu

+0

這只是將Stretch屬性設置爲None的問題,不是嗎? – mm8

+0

我必須檢查它。但我需要圖像水平拉伸並填充空間。當我說Horizo​​ntalAlignment = stretch和stretch = None時,這會解決嗎? – Anu