Silverlight - 滚动条在缩放滚动条视图内容时调整问题大小

时间:2010-09-04 09:10:06

标签: silverlight scroll zoom scale scrollviewer

我遇到了银光变焦和平移功能的奇怪问题。我有滚动查看器,在他的边框内,并在内部边框我的主要内容(一些网格,文本框等...) 我的XAML看起来像这样:

XAML:

 <Grid x:Name="Root" Background="Black">
    <ScrollViewer x:Name="Scroller" HorizontalScrollBarVisibility="Visible">
        <Border x:Name="Sizer">
            <Grid x:Name="LayoutRoot" ShowGridLines="True" RenderTransformOrigin="0.5,0.5">                   
               ... my content which is been scaled ...
            </Grid>
        </Border>
    </ScrollViewer>
</Grid>

缩放效果非常好。但是当我放大时我试图实现平移功能,这样我就可以浏览缩放内容。我的缩放部分看起来像这样:

protected override void OnMouseWheel(MouseWheelEventArgs e)
    {
        base.OnMouseWheel(e);           

        if (e.Delta > 0)
        {
            scale.ScaleX += 0.2;
            scale.ScaleY += 0.2;                
        }
        else if(e.Delta < 0 && (scale.ScaleX > 1 && scale.ScaleY > 1))
        {
            scale.ScaleX -= 0.2;
            scale.ScaleY -= 0.2;                
        }

        Sizer.Width = Sizer.Width * scale.ScaleX;
        Sizer.Height = Sizer.Height * scale.ScaleY;

在最后两行的上面的代码中,我还调整了Sizer Width和Height(ScrollViewer中的边框)的大小,因为我不想自动更改Border的大小,以便ScrollViewer可以自己调整大小。但是有问题。滚动条没有捕获缩放后的所有内容。在调试期间,包含缩放内容和ScrollViewer的网格大小相同:

Sizer_H : 1153,20007324219, LayoutRoot_H : 1153,20004582405, Sizer_W : 2271,60009765625, LayoutRoot_W : 2271,60009026527
Sizer_H : 1614,20007324219, LayoutRoot_H : 1614,20010995865, Sizer_W : 3180,80029296875, LayoutRoot_W : 3180,8002166748
Sizer_H : 2582,40014648438, LayoutRoot_H : 2582,40023088455, Sizer_W : 5089,6005859375, LayoutRoot_W : 5089,6004550457

我想弄清楚我做错了什么......但没有运气..

谢谢!

0 个答案:

没有答案