2
後,我學會了如何獲得的ScrollViewer的滾動條從這篇文章中的ScrollViewer內縮放元素後顯示:http://www.eightyeightpercentnerd.dreamhosters.com/?p=92的Silverlight:圍繞ScaleTransform
現在,我試圖讓縮放對象(在畫布這種情況下)在ScrollViewer中正確居中。我會讓圖片在這裏講述我的故事(請在Screencast.com清除我的文件之前幫助我)。 ;
我XAML:
<ScrollViewer x:Name="ScrollViewer" VerticalAlignment="Top"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
Width="300" Height="300" Margin="0" Padding="0" Background="White">
<Canvas x:Name="DesignSurface" Background="Red">
<Canvas x:Name="Surface" Background="Blue" Height="100" Width="100">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="SurfaceScaleTransform" />
</TransformGroup>
</Canvas.RenderTransform>
<!-- ... -->
</Canvas>
</Canvas>
</ScrollViewer>
在初始負載,我的藍色帆布居中,並在100%:
降低50%後,將藍色帆布仍然居中:
增加400%後滾動顯示藍色畫布的左上角:
增長400%和滾動顯示的藍色帆布的右下角後:
所以我的問題僅僅是如何得到的ScrollViewer中或紅色帆布或任何正確中心的藍色帆布?
這就是我正在建議的。 – ChrisF 2010-02-23 21:40:22
我嘗試使用RenderTransformOrigin併爲ScaleTransform設置CenterX和CenterY值,它可以很好地縮小但不起來。我只是通過設置基於某種邏輯的「藍色」畫布的頂部和左側值來解決我的問題(取決於縮放的「藍色」畫布是否小於或大於ScrollViewer。現在工作正常。感謝幫幫我。 – beaudetious 2010-02-23 21:57:17