2017-07-10 52 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