windows-phone-7 - wp7 中的缩放和滚动图像

标签 windows-phone-7

提前致谢..

在我的 WP7 应用程序中,我使用以下代码来缩放图像。

<Image Name="imgThumbnail" Width="480" Height="740" VerticalAlignment="Center" HorizontalAlignment="Center" RenderTransformOrigin="0.5, 0.5" CacheMode="BitmapCache">
    <Image.RenderTransform>
        <CompositeTransform x:Name="transform" />
    </Image.RenderTransform>
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener PinchDelta="OnPinchDelta" PinchStarted="OnPinchStarted" />
    </toolkit:GestureService.GestureListener>
</Image>

private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e)
{
    var image = sender as System.Windows.Controls.Image;
    if (image == null) return;
    var transform = image.RenderTransform as CompositeTransform;
    if (transform == null) return;
    initialScale = transform.ScaleX;
}
private void OnPinchDelta(object sender, PinchGestureEventArgs e)
{
    var image = sender as System.Windows.Controls.Image;
    if (image == null) return;
    var transform = image.RenderTransform as CompositeTransform;
    if (transform == null) return;
    transform.ScaleX = initialScale * e.DistanceRatio;
    transform.ScaleY = initialScale * e.DistanceRatio;
}

缩放工作正常,但我无法滚动图像。添加滚动查看器时,缩放不起作用。这是什么问题以及如何解决这个问题?

最佳答案

尝试使用 Laurent Bugnion 的这个库对图像进行捏合和缩放:https://multitouch.codeplex.com/ - 它处理“真正的”捏合和缩放行为所需的计算。

代码看起来像:

<Image CacheMode="BitmapCache" Name="imgThumbnail"  Margin="0,0,0,80" Source="test.jpg">
        <i:Interaction.Behaviors>
            <behaviors:MultiTouchBehavior IsDebugModeActive="False"
                                   AreFingersVisible="True"
                                   IsMockActive="True"                                       
                                   MaximumScale="3"
                                   MinimumScale="0.8"
                                   IsScaleEnabled="True"
                                   IsRotateEnabled="False"
                                   IsTranslateXEnabled="True"
                                   IsTranslateYEnabled="True"/>
        </i:Interaction.Behaviors>
    </Image>

如果您确实想尝试自己实现这一点,我建议您阅读 Francesco De Vittori 撰写的这篇文章 ( http://www.frenk.com/2011/03/windows-phone-7-correct-pinch-zoom-in-silverlight/ )。

关于windows-phone-7 - wp7 中的缩放和滚动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793239/

相关文章:

windows-phone-7 - 全景页面有多少个 View 模型

c# - NavigationService 提示从未附加到任何 View 的类执行 "FileNotFound"

java - 编译为 DLL 的 Java 库可以用于开发 WP7 应用程序吗?

c# - 在过滤这个可观察的集合时,我是否遗漏了什么?

windows-phone-7 - wp7 - 带有大量文本的 TextBlock - 大量内存使用 - 如何避免?

.net - 无法为 ContentControl 背景颜色设置动画,但可以与前景一起使用

silverlight - 两个应用程序(桌面和移动)之间的软件测试

windows-phone-7 - Windows Phone 7是否支持MD5?

c# - 如何让我的应用滚动经过键盘覆盖的内容

c# - 图像到byte[]、Convert和ConvertBack