我正在尝试在我的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)
答案 0 :(得分:8)
DeepZoomImageTileSource的URL不是图片网址,而是XML文件的网址,其中列出了用于深度缩放图块的图片。
我使用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;
}
如果您想要处理旋转图像,请取消注释旋转线。
萨姆
答案 1 :(得分:0)