我正在尝试在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控件以避免实现我自己的缩放功能,但因为我有时需要并排放置两张图片并将它们放大,就好像它们是一个我不认为我可以使用它
答案 0 :(得分:0)
问题是ScaleTransformation会缩放你的图片,但不会改变它的高度和宽度。只有当高度和宽度溢出滚动查看器时,您才能滚动内容