ScrollViewer缩放问题

时间:2011-06-23 02:28:49

标签: windows-phone-7 scrollviewer

我正在尝试在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值是什么,它都不会比正常情况下更大。这是怎么回事?

0 个答案:

没有答案