在Panorama / Pivot / RadSlideView项目中使用ScaleTransform时滚动问题

时间:2013-11-26 15:54:55

标签: c# windows-phone-8 telerik panorama-control rendertransform

我正在尝试在RadSlideView ItemTemplate中实现缩放功能。我这样做是通过使用带有Canvas的ViewportControl,然后将RenderTransform(ScaleTransform)应用到Canvas中的StackPanel。与发现的SDK样本类似here

我遇到的问题是ScaleTransform似乎正在影响用于更改SlideView / Panorama / Pivot控件中项目的滑动手势。例如。如果ScaleTransform设置为0.1,那么与使用ScaleTransform为1.0相比,似乎我只需要滑动1/10长度来更改项目。

我发现如果我在ItemTemplate上将IsHitTestVisible设置为false,则滑动就像我想要的那样。但这不是解决方案,因为我有时需要能够垂直平移内容,同时仍能通过水平滑动来更改项目。

所以我的问题是如何解决这个问题?

作为参考,XAML看起来像这样:

<Controls:RadSlideView Name="SlideView" ItemsSource="{Binding Pages}" IsLoopingEnabled="False" SelectionChanged="RadSlideView_SelectionChanged" CacheMode="BitmapCache" ManipulationStarted="SlideView_ManipulationStarted" ManipulationCompleted="SlideView_ManipulationCompleted" ManipulationDelta="SlideView_ManipulationDelta">
<Controls:RadSlideView.ItemTemplate>
    <DataTemplate>
        <ViewportControl x:Name="SlideViewViewport" ViewportChanged="SlideViewViewport_ViewportChanged" Loaded="SlideViewViewport_Loaded">
            <Canvas>
                <StackPanel>
                    <Image Source="{Binding Image}" Stretch="Fill" Width="{Binding ElementName=SlideView, Path=DataContext.PageWidth}" Height="{Binding ElementName=SlideView, Path=DataContext.PageHeight}" CacheMode="BitmapCache"/>
                    <StackPanel.RenderTransform>
                        <ScaleTransform x:Name="xform"/>
                    </StackPanel.RenderTransform>
                </StackPanel>
            </Canvas>
        </ViewportControl>
    </DataTemplate>
</Controls:RadSlideView.ItemTemplate>

我也看过Teleriks RadPanAndZoom控件以避免实现我自己的缩放功能,但因为我有时需要并排放置两张图片并将它们放大,就好像它们是一个我不认为我可以使用它

1 个答案:

答案 0 :(得分:0)

问题是ScaleTransformation会缩放你的图片,但不会改变它的高度和宽度。只有当高度和宽度溢出滚动查看器时,您才能滚动内容