c# - Windows Phone 7 中的可缩放图像

标签 c# silverlight windows-phone-7

我正在尝试使我的 Windows Phone 7 应用程序中的图像可缩放。 (下面的代码)无论它如何工作,图像都会显示。有人能让我走上正轨吗,这是正确的控件吗?如果是,那我做错了什么?

        <controls:PivotItem Name="Header" Header="item1">
            <Grid>
                <MultiScaleImage Name="mainImage" />
            </Grid>
        </controls:PivotItem>

        var imageurl = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("file_url_screen").First().Value;
        //imageurl = https://inkbunny.net///files/screen/165/165693_CobaltHusky_random_anatomy_doodles.png
        Header.Header = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("title").First().Value;
         DeepZoomImageTileSource img = new DeepZoomImageTileSource(new Uri(imageurl));
        mainImage.Source = img;

编辑 阅读 MultiScaleImage 上的 msdn,该控件不是要使用的控件。它需要一个特定的图像源(不是位图/jpg)

最佳答案

DeepZoomImageTileSource 的 URL 不是图像 URL,而是 XML 文件的 URL,其中列出了用于深度缩放图 block 的图像。

我使用 silverlight 工具包实现了一个简单的可缩放图像,如下所示:

<Image Name="MainImage" RenderTransformOrigin="0.5,0.5" CacheMode="BitmapCache">
    <Image.RenderTransform>
        <CompositeTransform x:Name="transform" />
    </Image.RenderTransform>
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta" />
    </toolkit:GestureService.GestureListener>
</Image>

在代码中:

MainImage.Source = new BitmapImage(new Uri(url));

然后为您的角度和缩放声明两个变量:

double initialAngle;
double initialScale;

然后处理手势事件:

private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e)
{
    initialAngle = transform.Rotation;
    initialScale = transform.ScaleX;
}

private void OnPinchDelta(object sender, PinchGestureEventArgs e)
{
    //transform.Rotation = initialAngle + e.TotalAngleDelta;
    transform.ScaleX = initialScale * e.DistanceRatio;
    transform.ScaleY = initialScale * e.DistanceRatio;
}

如果您还想处理旋转图像,请取消注释旋转线。

山姆

关于c# - Windows Phone 7 中的可缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891504/

相关文章:

c# - 停止线程C#中的声音

c# - Windows Phone 7,收藏全景项目

c# - 如何获得设备的屏幕分辨率(Windows Phone)

windows-phone-7 - 将枚举保存到IsolatedStorageSettings

c# - AJAX 调用后如何重定向到 "Error" View 页面?

c# - Cosmos DB 中的重试策略

silverlight - 可能没有内容的网格中的右对齐按钮 - 拉伸(stretch)网格以始终填充页面

flash - 动态音频生成 Actionscript 3

c# - 使用 C# 在运行时创建自定义 PivotItem header

silverlight - 您如何调试 Share Picker 扩展?