0

我正在尝试在 RadSlideView ItemTemplate 中实现缩放功能。我通过将 ViewportControl 与 Canvas 一起使用,然后将 RenderTransform (ScaleTransform) 应用于 Canvas 中的 StackPanel 来执行此操作。类似于在此处找到的 SDK 示例。

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

我发现如果我IsHitTestVisible在 ItemTemplate 上设置为 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-control 以避免实现我自己的缩放功能,但由于我有时需要并排放置两张图片并像它们是一张一样缩放它们,所以我认为我不能使用它。

4

1 回答 1

0

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

于 2013-11-27T13:53:18.303 回答