我正在尝试在WP7中的ScrollViewer中实现放大/缩小功能。在我的scrollviewer里面是一个用户控件,它由一个网格和一些可变单元格中的省略号组成。
实现无缩放,我可以在模拟器中运行应用程序并向上/向下,向左/向右滚动滚动查看器。
我最初的想法是在scrollviewer上使用缩放变换:
<ScrollViewer x:Name="svScale"
Margin="0"
Grid.Row="1"
HorizontalScrollBarVisibility="Visible">
<ScrollViewer.RenderTransform>
<ScaleTransform ScaleX="2" ScaleY="2"/>
</ScrollViewer.RenderTransform>
<ScrollViewer.RenderTransformOrigin>
<Point X=".5" Y=".5"/>
</ScrollViewer.RenderTransformOrigin>
<local:MyControl x:Name="test"
Width="486"
Height="56">
</local:MyControl>
</ScrollViewer>
问题是当我滚动时,滚动查看器总是将内容滚动回垂直和水平中心。
所以我尝试将比例变换应用于用户控件:
<ScrollViewer x:Name="svScale"
Margin="0"
Grid.Row="1"
HorizontalScrollBarVisibility="Visible">
<local:MyControl x:Name="test"
Width="486"
Height="56"
SelectedKey="{Binding SelectedKey}"
SelectedScale="{Binding SelectedScale}">
<local:MyControl.RenderTransform>
<ScaleTransform ScaleX="2" ScaleY="2"/>
</local:MyControl.RenderTransform>
<local:MyControl.RenderTransformOrigin>
<Point X=".5" Y=".5"/>
</local:MyControl.RenderTransformOrigin>
</local:MyControl>
</ScrollViewer>
但是当我将比例变换应用于用户控件时,无论ScaleX和ScaleY值是什么,它都不会比正常情况下更大。这是怎么回事?