我从这篇文章中学习了如何在ScrollViewer中缩放元素之后显示ScrollViewer的滚动条:http://www.eightyeightpercentnerd.dreamhosters.com/?p = 92
现在,我正在尝试将缩放对象(在这种情况下为画布)在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>
Run Code Online (Sandbox Code Playgroud)
在初始加载时,我的蓝色画布居中并且为100%:

减少50%后,蓝色画布仍然居中:

增加400%并滚动显示蓝色画布的左上角:

增加400%并滚动显示蓝色画布的右下角:

所以我的问题是如何让蓝色画布在ScrollViewer或红色画布中正确居中?
也许我弄错了你,但你尝试过将RenderTransformOrigin设置为Canvas吗?例如:
<Canvas x:Name="Surface" Background="Blue" Height="100" Width="100"
RenderTransformOrigin="0.5, 0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="SurfaceScaleTransform" />
</TransformGroup>
</Canvas.RenderTransform>
<!-- ... -->
</Canvas>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1900 次 |
| 最近记录: |